Pagini recente » Cod sursa (job #178808) | Cod sursa (job #1937419) | Cod sursa (job #3191779) | Cod sursa (job #1322313) | Cod sursa (job #1387199)
#include<cstdio>
int t,i,j,n,m,k,a,b,c,x,y,z,q[4][4],cq[4][4],ccq[4][4];
void mult(int nr)
{
cq[1][1]=0;
cq[1][2]=0;
cq[1][3]=c;
cq[2][1]=1;
cq[2][2]=0;
cq[2][3]=b;
cq[3][1]=0;
cq[3][2]=1;
cq[3][3]=a;
nr--;
while(nr!=0)
{
if(nr%2==0)
{
nr/=2;
int lin,col,l1;
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
{
int x=0;
for(l1=1;l1<=3;l1++)
x+=q[lin][l1]*q[l1][col];
ccq[lin][col]=x%666013;
}
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
q[lin][col]=ccq[lin][col];
}
else
{
nr--;
int lin,col,l1;
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
{
int x=0;
for(l1=1;l1<=3;l1++)
x+=cq[lin][l1]*q[l1][col];
ccq[lin][col]=x%666013;
}
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
cq[lin][col]=ccq[lin][col];
}
}
}
int main ()
{
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&t);
for(i=1;i<=t;i++)
{
scanf("%d%d%d%d%d%d%d",&x,&y,&z,&a,&b,&c,&n);
q[2][1]=1;
q[3][2]=1;
q[1][3]=c;
q[2][3]=b;
q[3][3]=a;
mult(n-2);
int lin,col;
int qq=x*cq[1][3]+y*cq[2][3]+z*cq[3][3];
printf("%d\n",qq%666013);
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
q[lin][col]=cq[lin][col]=ccq[lin][col]=0;
}
return 0;
}