Pagini recente » Cod sursa (job #339830) | Cod sursa (job #2310221) | Cod sursa (job #51960) | Cod sursa (job #623574) | Cod sursa (job #535165)
Cod sursa(job #535165)
#include<stdio.h>
#define mod 666013
FILE *in=fopen("iepuri.in","rt");
FILE *out=fopen("iepuri.out","wt");
long long M[3][3],i,j,aux[3][3];
int x,y,z,N,T,q,k;
int main()
{
fscanf(in,"%d",&T);
for(k=1;k<=T;k++)
{
long long M[3][3]={0};
M[0][1]=1;
M[1][2]=1;
fscanf(in,"%d %d %d %lld %lld %lld %d",&x,&y,&z,&M[2][2],&M[2][1],&M[2][0],&N);
long long sol[3][3]={0};
sol[0][0]=sol[1][1]=sol[2][2]=1;
for(i=0;(1LL<<i)<=N;i++)
{
if( ((1LL<<i) & N) >0)
{
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
aux[q][j]=(M[q][0]*sol[0][j] + M[q][1]*sol[1][j] + M[q][2]*sol[2][j])%mod;
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
sol[q][j]=aux[q][j];
}
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
aux[q][j]=(M[q][0]*M[0][j] + M[q][1]*M[1][j] + M[q][2]*M[2][j])%mod;
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
M[q][j]=aux[q][j];
}
long long rasp=(x*sol[0][0]+y*sol[0][1]+z*sol[0][2])%mod;
fprintf(out,"%lld\n",rasp);
}
}