Pagini recente » Cod sursa (job #89294) | Cod sursa (job #1056417) | Cod sursa (job #710025) | Cod sursa (job #2431955) | Cod sursa (job #715728)
Cod sursa(job #715728)
#include<fstream>
#define dim 10000
#define mod 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long M[4][4],rez[4][4],aux[4][4];
int t;
void copy(long long A[4][4],long long aux[4][4]){
for(int i=0;i<=3;i++)
for(int j=0;j<=3;j++)
A[i][j]=aux[i][j];
}
void multi(long long A[4][4],int n,int m,long long B[4][4],int m1,int p){
for(int i=1;i<=n;i++){
for(int j=1;j<=p;j++){
aux[i][j]=0;
for(int k=1;k<=m;k++){
aux[i][j]=aux[i][j]+ (long long )(A[i][k]*B[k][j])%mod;
}
}
}
copy(A,aux);
}
void lgput(long long A[4][4],long long P[4][4],int p){
while(p){
if(p%2==1)
multi(P,3,3,A,3,3);
multi(A,3,3,A,3,3);
p/=2;
}
}
int main (){
f>>t;
int x,y,z,a,b,c,n;
while(t){
f>>x>>y>>z>>a>>b>>c>>n;
M[1][1]=a;M[1][2]=b;M[1][3]=c;
M[2][1]=M[3][2]=1;
M[2][2]=M[2][3]=M[3][1]=M[3][3]=0;
rez[1][1]=rez[2][2]=rez[3][3]=1;
rez[1][2]=rez[1][3]=rez[2][1]=rez[2][3]=rez[3][2]=rez[3][1]=0;
lgput(M,rez,n);
g<<rez[1][1]%mod<<"\n";
--t;
}
return 0;
}