Pagini recente » Cod sursa (job #1781901) | Cod sursa (job #57534) | Cod sursa (job #3183738) | Cod sursa (job #2636625) | Cod sursa (job #260881)
Cod sursa(job #260881)
#include<stdio.h>
#define mod 666013
long M[3][3],X[3][3];
void bin(long A[3][3],long B[3][3])
{
long C[3][3];
for(int i=0;i<3;++i)
for(int j=0;j<3;++j)
{
C[i][j]=0;
for(int k=0;k<3;++k)
C[i][j]=(C[i][j]+ (A[i][k]*B[k][j]) %mod) %mod;
}
A[0][0]=C[0][0];
A[0][1]=C[0][1];
A[0][2]=C[0][2];
A[1][0]=C[1][0];
A[1][1]=C[1][1];
A[1][2]=C[1][2];
A[2][0]=C[2][0];
A[2][1]=C[2][1];
A[2][2]=C[2][2];
}
void bin2(long A[3][3])
{
long C[3][3];
for(int i=0;i<3;++i)
for(int j=0;j<3;++j)
{
C[i][j]=0;
for(int k=0;k<3;++k)
C[i][j]=(C[i][j]+ (A[i][k]*A[k][j]) %mod) %mod;
}
A[0][0]=C[0][0];
A[0][1]=C[0][1];
A[0][2]=C[0][2];
A[1][0]=C[1][0];
A[1][1]=C[1][1];
A[1][2]=C[1][2];
A[2][0]=C[2][0];
A[2][1]=C[2][1];
A[2][2]=C[2][2];
}
int main()
{
int a,b,c,x,y,z,t;
long n;
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&t);
for(;t;--t)
{
scanf("%d%d%d%d%d%d%ld",&x,&y,&z,&a,&b,&c,&n);
n=n-2;
M[0][0]=a; M[0][1]=b; M[0][2]=c;
M[1][0]=1; M[1][1]=0; M[1][2]=0;
M[2][0]=0; M[2][1]=1; M[2][2]=0;
X[0][0]=1; X[0][1]=0; X[0][2]=0;
X[1][0]=0; X[1][1]=1; X[1][2]=0;
X[2][0]=0; X[2][1]=0; X[2][2]=1;
while (n)
{
if (n%2==1)
bin(X,M);
bin2(M);
n/=2;
}
printf("%ld\n",((X[0][0]*z)%mod + (X[0][1]*y)%mod +(X[0][2]*x)%mod)%mod );
}
return 0;
}