| Task: | Xor sum |
| Sender: | aalto26dm_041 |
| Submission time: | 2026-09-21 17:26:50 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | details |
| #2 | ACCEPTED | 0.27 s | details |
Code
import sys
def main():
input_data = sys.stdin.read().split()
if not input_data:
return
n = int(input_data[0])
q = int(input_data[1])
tree = [0] * (2 * n)
for i in range(n):
tree[n + i] = int(input_data[2 + i])
for i in range(n - 1, 0, -1):
tree[i] = tree[2 * i] ^ tree[2 * i + 1]
idx = 2 + n
out = []
for _ in range(q):
l = int(input_data[idx]) - 1 + n
r = int(input_data[idx + 1]) - 1 + n
res = 0
while l <= r:
if l % 2 == 1:
res ^= tree[l]
l += 1
if r % 2 == 0:
res ^= tree[r]
r -= 1
l //= 2
r //= 2
out.append(str(res))
idx += 2
sys.stdout.write('\n'.join(out) + '\n')
if __name__ == '__main__':
main()
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 8 36 7 6 4 6 2 9 4 8 1 1 1 2 1 3 ... |
| correct output |
|---|
| 7 1 5 3 1 ... |
| user output |
|---|
| 7 1 5 3 1 ... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 200000 200000 921726510 307633388 992247073 ... |
| correct output |
|---|
| 834756431 130379787 403037296 308618218 784778243 ... |
| user output |
|---|
| 834756431 130379787 403037296 308618218 784778243 ... |
