Pagini recente » Cod sursa (job #1367557) | Cod sursa (job #1713724) | Cod sursa (job #888009) | Cod sursa (job #444445) | Cod sursa (job #255468)
Cod sursa(job #255468)
#include <stdio.h>
#define MOD 666013
int x,y,z,a,b,c,n,T,aux[3][3],rez[3][3],B[3][3];
void power(){
int i,j,k;
while(n>0){
if ((int)(n&1)==1){
for (i=0;i<3;++i)
for (j=0;j<3;++j){
aux[i][j]=0;
for (k=0;k<3;++k)
aux[i][j]+=rez[i][k]*B[k][j];
}
for (i=0;i<3;++i)
for (j=0;j<3;++j)rez[i][j]=aux[i][j]%MOD;
}
for (i=0;i<3;++i)
for (j=0;j<3;++j){
aux[i][j]=0;
for (k=0;k<3;++k)
aux[i][j]+=B[i][k]*B[k][j];
}
for (i=0;i<3;++i)
for (j=0;j<3;++j)B[i][j]=aux[i][j]%MOD;
n>>=1;
}
}
int main(){
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&T);
for (;T;--T){
scanf("%d %d %d %d %d %d %d",&x,&y,&z,&a,&b,&c,&n);
n-=2;
B[0][0]=0;B[0][1]=0;B[0][2]=c;
B[1][0]=1;B[1][1]=0;B[1][2]=b;
B[2][0]=0;B[2][1]=1;B[2][2]=a;
//initializare
rez[0][0]=1;rez[0][1]=0;rez[0][2]=0;
rez[1][0]=0;rez[1][1]=1;rez[1][2]=0;
rez[2][0]=0;rez[2][1]=0;rez[2][2]=1;
power();
printf("%d\n",(x*rez[0][2]+y*rez[1][2]+z*rez[2][2])%MOD);
}
return 0;
}