मान लीजिए हमें एक लिस्ट दी गई है जिसमें नेचुरल नंबर्स हैं। अब उस लिस्ट से, हम उन सभी नंबर्स को हटा देते हैं जिनके बाइनरी प्रतिनिधित्व में दो क्रमागत 1 होते हैं और एक अन्य लिस्ट Z जनरेट करते हैं। अब हमें एक और लिस्ट 'input_list' दी गई है जिसमें कुछ इंटीजर मान हैं। हमें Z के उन विशिष्ट एलिमेंट्स का XOR मान ढूंढना है जिनके इंडेक्स input_list में निर्दिष्ट हैं।
इसलिए, यदि इनपुट है input_list = [3, 4, 5], तो आउटपुट 9 होगा।
Z के इंडेक्स 3, 4, और 5 में मान 4, 5, और 8 हैं। तो, 4 XOR 5 XOR 8 = 9।
समाधान दृष्टिकोण
- zeck_num() फंक्शन परिभाषित करें जो k और f_list लेता है
- MOD := 10^9 + 7
- max_val := 10^18
- f_list := [1, 2] मान वाली नई लिस्ट
- जब तक f_list का अंतिम एलिमेंट <= max_val, फिबोनाची अनुक्रम जनरेट करें
- प्रत्येक इंडेक्स के लिए input_list में, zeck_num की गणना करें और XOR करें
- परिणाम को MOD से मोड्यूलो करें
उदाहरण कार्यान्वयन
def zeck_num(k, f_list):
res = 0
for i in range(len(f_list)-1, -1, -1):
if k >= f_list[i]:
res += 2**i
k -= f_list[i]
return res
def solve(input_list):
MOD = 10**9 + 7
max_val = 10**18
f_list = [1, 2]
while f_list[-1] <= max_val:
f_list.append(f_list[-1] + f_list[-2])
res = 0
for index in input_list:
res ^= zeck_num(index, f_list)
return res % MOD
print(solve([3, 4, 5]))
इनपुट
[3, 4, 5]
आउटपुट
9