Pagini recente » Cod sursa (job #2818693) | Cod sursa (job #1101224) | Cod sursa (job #966062) | Cod sursa (job #2317582) | Cod sursa (job #347181)
Cod sursa(job #347181)
#include<stdio.h>
#define mod 666013
int x,y,z,a,b,c,n;
void inm(int a[4][4], int b[4][4])
{
int c[4][4],i,j,k,s;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
s=0;
for(k=1;k<=3;k++)
s=(s+(long long)a[i][k]*b[k][j])%mod;
c[i][j]=s;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=c[i][j];
}
int rez()
{
int v[4][4],v1[4][4]={0};
long long s=0;
v[1][1]=v[3][1]=v[1][2]=v[2][2]=0;
v[2][1]=v[3][2]=1;
v[1][3]=c;
v[2][3]=b;
v[3][3]=a;
v1[1][1]=v1[2][2]=v1[3][3]=1;
n-=2;
while(n)
{
if(n&1)
inm(v1,v);
inm(v,v);
n=n/2;
}
s=((long long)x*v1[1][3])%mod;
s=s+((long long)y*v1[2][3])%mod;
s=s+((long long)z*v1[3][3])%mod;
return (int)s%mod;
}
int main()
{
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d%d%d%d%d",&x,&y,&z,&a,&b,&c,&n);
printf("%d\n",rez());
}
return 0;
}