Hi, I have tried the problem using matrix exponentiation but i keep getting LTE can someone please help me out.
My code:
#include <bits/stdc++.h>
#define mod 98765431
using namespace std;
long long int n,t;
vector A;
vector <vector > T,Tn;
vector <vector > matmult(vector <vector > A, vector <vector > B){
int i=0,j=0,k=0;
vector <vector > C(n,vector (n,0));
for(i=0;i<n;i++){
for(j=0;j<n;j++){
for(k=0;k<n;k++){
C[i][j] = (C[i][j] + (A[i][k]*B[k][j])%mod + mod )%mod;
}
}
}
return C;
}
vector <vector > matexp(long long int pow){
if (pow==1) return T;
if(pow & 1) return matmult(T, matexp(pow-1));
else {
vector <vector > s = matexp(pow/2);
return matmult(s,s);
}
}
int main(){
cin>>n>>t;
long long int N =n, temp ;
while(N–) {
cin>>temp;
A.push_back((temp%mod + mod )% mod);
}
T.resize(n,vector (n,1));
int i=0;
while(i<n){
T[i][i]=0;
i++;
}
Tn = matexp(t);
int j=0;
for(i=0;i<n;i++){
long long int temp = 1ll*0;
for(j=0;j<n;j++){
temp = (temp + (Tn[i][j]*A[j])%mod) % mod;
}
cout<<temp<<endl;
}
return 0;
}