Pagini recente » Cod sursa (job #2427293) | Cod sursa (job #944498) | Cod sursa (job #2571723) | Cod sursa (job #1618917) | Cod sursa (job #1387520)
#include<cstdio>
long long t,i,j,n,m,k,a,b,c,x,y,z,q[4][4],cq[4][4],ccq[4][4];
void mult(long long 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;
long long lin,col,l1;
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
{
long long 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--;
long long lin,col,l1;
for(lin=1;lin<=3;lin++)
for(col=1;col<=3;col++)
{
long long 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("%lld",&t);
for(i=1;i<=t;i++)
{
scanf("%lld%lld%lld%lld%lld%lld%lld",&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);
long long lin,col;
long long qq=x*cq[1][3]+y*cq[2][3]+z*cq[3][3];
printf("%lld\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;
}