Pagini recente » Autentificare | Cod sursa (job #1604445) | Cod sursa (job #2156980) | Cod sursa (job #1888359) | Cod sursa (job #810139)
Cod sursa(job #810139)
#include<cstdio>
#include<cstdlib>
FILE*f;
FILE*g;
void inmult(long long a[3][3],long long b[3][3],long long c[3][3])
{
long long d[3][3];
int i,j,k;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
d[i][j]=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
for (k=0;k<3;k++)
d[i][j]=d[i][j]+(b[i][k]*c[k][j])%666013;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
a[i][j]=d[i][j]%666013;
}
int main()
{
int n,q;
int a,b,c,x,y,z,o,t,i,j;
long long A[3][3],X[3][3];
f=fopen("iepuri.in","r");
g=fopen("iepuri.out","w");
fscanf(f,"%d",&t);
for (o=1;o<=t;o++)
{
q=0;
fscanf(f,"%d%d%d%d%d%d%lld",&x,&y,&z,&a,&b,&c,&n);
for (i=0;i<3;i++)
for (j=0;j<3;j++)
A[i][j]=0;
for (i=0;i<3;i++)
for (j=0;j<3;j++)
X[i][j]=0;
A[0][0]=1;A[1][1]=1;A[2][2]=1;
X[0][1]=1;X[1][2]=1;X[2][0]=c;X[2][1]=b;X[2][2]=a;
for (i=0;(1<<i)<=(n-2);++i)
{
if (((1<<i)&(n-2))>0)
inmult(A,A,X);
inmult(X,X,X);
}
q=(A[2][0]*x+A[2][1]*y+A[2][2]*z)%666013;
fprintf(g,"%lld \n",q);
}
return 0;
}