Submission #11458617


Source Code Expand

n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a = a + a[:-1]

da = [a[i] ^ a[i+1] for i in range(len(a) - 1)]
db = [b[i] ^ b[i+1] for i in range(len(b) - 1)]


fail = [0 for i in range(len(da))]
fail[0] = -1
p = 0
for q in range(2, len(da)):
    while p >= 0 and da[q-1] != da[p]:
        p = fail[p]
    p += 1
    fail[q] = p

p = 0
q = 0
while p + q < len(da):
    if db[q] == da[p+q]:
        if q == len(db) - 1:
            print(p, a[p] ^ b[0])
            p += q - fail[q]
            q = fail[q]
        else:
            q += 1
    else:
        p += q - fail[q]
        if q > 0:
            q = fail[q]

Submission Info

Submission Time
Task F - Xor Shift
User joisino
Language PyPy3 (2.4.0)
Score 600
Code Size 690 Byte
Status AC
Exec Time 565 ms
Memory 128080 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 4
AC × 22
Set Name Test Cases
Sample sample_01, sample_02, sample_03, sample_04
All max_01, max_02, max_03, max_04, random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, random_13, random_14, sample_01, sample_02, sample_03, sample_04
Case Name Status Exec Time Memory
max_01 AC 525 ms 119628 KiB
max_02 AC 565 ms 128080 KiB
max_03 AC 442 ms 109552 KiB
max_04 AC 304 ms 109552 KiB
random_01 AC 245 ms 69944 KiB
random_02 AC 302 ms 102044 KiB
random_03 AC 224 ms 56892 KiB
random_04 AC 298 ms 98860 KiB
random_05 AC 243 ms 69112 KiB
random_06 AC 238 ms 65424 KiB
random_07 AC 373 ms 121208 KiB
random_08 AC 322 ms 116604 KiB
random_09 AC 299 ms 80868 KiB
random_10 AC 250 ms 55236 KiB
random_11 AC 330 ms 104236 KiB
random_12 AC 245 ms 50860 KiB
random_13 AC 389 ms 125956 KiB
random_14 AC 189 ms 40560 KiB
sample_01 AC 168 ms 38256 KiB
sample_02 AC 173 ms 38256 KiB
sample_03 AC 165 ms 38384 KiB
sample_04 AC 166 ms 38256 KiB