Pagini recente » Cod sursa (job #80700) | Cod sursa (job #2612919) | Cod sursa (job #1214278) | Cod sursa (job #1811986) | Cod sursa (job #1487582)
#include<stdio.h>
long long e[3][3],d[3][3],f[3][3],g[3][3];
int a,b,c,x,y,z,k,t,i,v[80],n,j,l,r;
int main() {
freopen("iepuri.in","r",stdin),freopen("iepuri.out","w",stdout),scanf("%d",&t);
while(t--) {
scanf("%d%d%d%d%d%d%d",&x,&y,&z,&a,&b,&c,&n),e[0][0]=e[0][2]=e[1][0]=e[1][1]=0,e[0][1]=e[1][2]=1,e[2][0]=c,e[2][1]=b,e[2][2]=a;
for(l=0;l<3;l++)
for(j=0;j<3;j++)
for(d[l][j]=r=0;r<3;r++)
d[l][j]=((d[l][j]%666013)+(((e[l][r]%666013)*(e[r][j]%666013))%666013))%666013;
for(k=0,n-=2;n;v[++k]=n&1,n>>=1);
for(i=k-1;i;i--) {
for(l=0;l<3;l++)
for(j=0;j<3;j++)
for(f[l][j]=r=0;r<3;r++)
f[l][j]=((f[l][j]%666013)+(((e[l][r]%666013)*(d[r][j]%666013))%666013))%666013;
if(!v[i])
for(l=0;l<3;l++)
for(j=0;j<3;j++)
for(g[l][j]=r=0;r<3;r++)
g[l][j]=((g[l][j]%666013)+(((e[l][r]%666013)*(e[r][j]%666013))%666013))%666013;
else
for(l=0;l<3;l++)
for(j=0;j<3;j++)
for(g[l][j]=r=0;r<3;r++)
g[l][j]=((g[l][j]%666013)+(((d[l][r]%666013)*(d[r][j]%666013))%666013))%666013;
for(j=0;j<3;j++)
for(l=0;l<3;l++)
d[j][l]=f[j][l],e[j][l]=g[j][l];
}
printf("%d\n",((((e[2][0]%666013)*(x%666013))%666013)+(((e[2][1]%666013)*(y%666013))%666013)+(((e[2][2]%666013)*(z%666013))%666013))%666013);
}
}