Pagini recente » Cod sursa (job #1861440) | Cod sursa (job #716652) | Cod sursa (job #3131056) | Cod sursa (job #2244677) | Cod sursa (job #993500)
Cod sursa(job #993500)
#include<stdio.h>
#define mod 666013
using namespace std;
int t,x,y,z,a,b,c,n;
int add[4][4],sol[4][4];
void init()
{
add[1][1]=a; add[1][2]=1; add[1][3]=0;
add[2][1]=b; add[2][2]=0; add[2][3]=1;
add[3][1]=c; add[3][2]=0; add[3][3]=0;
sol[1][1]=1; sol[1][2]=0; sol[1][3]=0;
sol[2][1]=0; sol[2][2]=1; sol[2][3]=0;
sol[3][1]=0; sol[3][2]=0; sol[3][3]=1;
}
void up(int m1[4][4],int m2[4][4])
{
int aux[4][4];
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
aux[i][j]=0;
for(int k=1;k<=3;k++)
aux[i][j]=(aux[i][j]+(m1[i][k]*m2[k][j])%mod)%mod;
}
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
m1[i][j]=aux[i][j];
}
void read()
{
int solf,k,i;
scanf("%d",&t);
for(k=1;k<=t;k++)
{
scanf("%d%d%d",&x,&y,&z);
scanf("%d%d%d%d",&a,&b,&c,&n);
init();
for(i=0;(n>>i);i++)
{
if( ((n>>i)&1) ) up(sol,add);
up(add,add);
}
solf=0;
solf=(z*sol[1][3])%mod+(y*sol[2][3])%mod+(x*sol[3][3])%mod;
solf%=mod; printf("%d\n",solf);
}
}
int main()
{
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
read();
fclose(stdin);
fclose(stdout);
return 0;
}