আমি যে অন্য চ্যালেঞ্জটি লিখছি তার জন্য, আমাকে যাচাই করা দরকার যে পরীক্ষার কেসগুলি সীমাবদ্ধ পূর্ণসংখ্যার সাথে সমাধানযোগ্য। বিশেষত, খালি খালি পূর্ণসংখ্যার পূর্ণ সংখ্যা A
এবং একটি পূর্ণসংখ্যার বিট প্রস্থের জন্য আমাকে নিম্নলিখিতগুলি যাচাই করতে হবে n
:
- সকল পূর্ণসংখ্যার
a
মধ্যেA
সন্তুষ্ট-2**(n-1) <= a < 2**(n-1)
না (এর সাথে representablen
-বিট দুই এর সম্পূরক পূর্ণসংখ্যার)। - এর দৈর্ঘ্য এর
A
চেয়ে কম2**n
। - এর সমষ্টি
A
সন্তুষ্ট-2**(n-1) <= sum(A) < 2**(n-1)
। A
উপরোক্ত সমস্ত শর্ত পূরণে উপাদানগুলির সমস্ত সংমিশ্রণ ।
স্বাভাবিকভাবেই, আমি আপনাকে এই সমস্যার আউটসোর্স করার সিদ্ধান্ত নিয়েছি!
পূর্ণসংখ্যার একটি অ্যারে A
এবং ধনাত্মক পূর্ণসংখ্যার বিট প্রস্থ দেওয়া n
, যাচাই করুন যা A
উপরের শর্তগুলিকে সন্তুষ্ট করে।
পরীক্ষার কেস
[0, 0, 0], 2: True
[0, 0, 0, 0], 2: False (violates #2)
[1, 2, 3, 4, 5], 8: True
[1, 2, 3, 4, 5], 2: False (violates all conditions)
[1, 2, 3, 4, 5], 5: True
[-3, 4, 1], 4: True
[10, 0, -10], 4: False (violates #1 and #4)
[27, -59, 20, 6, 10, 53, -21, 16], 8: False (violates #4)
[-34, 56, 41, -4, -14, -54, 30, 38], 16: True
[-38, -1, -11, 127, -35, -47, 28, 89, -8, -12, 77, 55, 75, 75, -80, -22], 7: False (violates #4)
[-123, -85, 6, 121, -5, 12, 52, 31, 64, 0, 6, 101, 128, -72, -123, 12], 12: True
রেফারেন্স বাস্তবায়ন (পাইথন 3)
#!/usr/bin/env python3
from itertools import combinations
from ast import literal_eval
def check_sum(L, n):
return -2**(n-1) <= sum(L) < 2**(n-1)
def check_len(L, n):
return len(L) < 2**n
def check_elems(L, n):
return all(-2**(n-1) <= a < 2**(n-1) for a in L)
A = literal_eval(input())
n = int(input())
OUTPUT_STR = "{}, {}: {}".format(A, n, "{}")
if not (check_elems(A, n) and check_len(A, n) and check_sum(A, n)):
print(OUTPUT_STR.format(False))
exit()
for k in range(1, len(A)):
for b in combinations(A, k):
if not check_sum(b, n):
print(OUTPUT_STR.format(False))
exit()
print(OUTPUT_STR.format(True))