Pagini recente » Cod sursa (job #1566200) | Cod sursa (job #691295) | Cod sursa (job #2699764) | Cod sursa (job #1696641) | Cod sursa (job #81784)
Cod sursa(job #81784)
#include <stdio.h>
long m[4][4],d[4][4],v[4][4],s,n,a,b,c,x,y,z,p;
int k,i,j,t;
int main()
{FILE *fin,*fout;
fin=fopen("iepuri.in","r");
fout=fopen("iepuri.out","w");
fscanf(fin,"%d",&t);
for (k=1;k<=t;k++)
{fscanf(fin,"%ld %ld %ld %ld %ld %ld %ld",&x,&y,&z,&a,&b,&c,&n);
m[1][1]=0;m[1][2]=1;m[1][3]=0;
m[2][1]=0;m[2][2]=0;m[2][3]=1;
m[3][1]=c;m[3][2]=b;m[3][3]=a;
if (n%2==1) for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
d[i][j]=m[i][j];
else for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
if (i==j) d[i][j]=1;
else d[i][j]=0;
n=n/2;
while (n>0)
{for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{s=0;
for (p=1;p<=3;p++)
s=s+m[i][p]*m[p][j];
v[i][j]=s;
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
m[i][j]=v[i][j];
if (n%2==1) {for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{s=0;
for (p=1;p<=3;p++)
s=s+m[i][p]*d[p][j];
v[i][j]=s;
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
d[i][j]=v[i][j];
}
n=n/2;
}
s=(d[1][1]*x+d[1][2]*y+d[1][3]*z)%666013;
fprintf(fout,"%ld\n",s);
}
fclose(fin);
fclose(fout);
return 0;
}