-
Notifications
You must be signed in to change notification settings - Fork 0
/
CCNovLCprob6.py
33 lines (29 loc) · 889 Bytes
/
CCNovLCprob6.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
t = int(input())
for _ in range(t):
N,P,Q = [int(x) for x in input().split()]
arr = [int(x) for x in input().split()]
B = [int(x) for x in input().split()]
x=0
L = [0 for _ in range(Q)]
R = [0 for _ in range(Q)]
for i in range(Q):
print(i)
if i%64==0:
L[i] = ( B[i//64] + x ) % N
R[i] = ( B[i//64 + 1] + x ) % N
else:
L[i] = (L[i - 1] + x) % N
R[i] = (R[i - 1] + x) % N
if i %64 in range(B.__len__()-1):
if 0 not in arr[L[i]:(R[i]+1)%P]:
sum=1
if L[i]%P>R[i]%P:
L[i],R[i]=R[i]%P,L[i]
for j in range(L[i]%P,(R[i]+1)%P):
sum*=arr[j]
else:
sum=0
x = (sum + 1) % P
print(L[i],R[i],x)
# print(L[i],R[i],x)
print(x)