my cpp code was failing for 2 cases s i tried in python
now i am getting RE for 2 cases
please find my mistakeā¦
thanks
def mult(A,B,p,k):
C = [[0 for i in range(k+2)] for j in range(k+2)]
for i in range(1,k+2):
for j in range(1,k+2):
ans = 0
for z in range(1,k+2):
ans = ans+(A[i][z]*B[z][j])%p
ans = ans%p
C[i][j] = ans
return C
def power(T,n,p,k):
if n==1:
return T
X = power(T,n//2,p,k)
X = mult(X,X,p,k)
if n%2 == 1:
X = mult(X,T,p,k)
return X
def calc(b,c,k,n,p):
# ONE INDEXING
T = [[0 for i in range(k+2)] for j in range(k+2)]
T[1][1] = 1
T[1][2] = 1
for i in range(2,k+1):
T[i][i+1] = 1
for i in range(k):
T[k+1][i+2] = c[k-i-1]
T = power(T,n,p,k)
ans = T[1][1]
for i in range(2,k+2):
ans = (ans+(T[1][i]*b[i-2])%p)%p
return ans
c = int(input())
for cc in range(c):
k = int(input())
b = [0]*k
c = [0]*k
b = list(map(int,input().split()))
c = list(map(int,input().split()))
m,n,p = map(int,input().split())
aa = calc(b,c,k,m-1,p)
bb = calc(b,c,k,n,p)
ans = (bb-aa+p)%p
print(ans)