Pagini recente » Cod sursa (job #3171604) | Cod sursa (job #2939522) | Cod sursa (job #1171950) | Cod sursa (job #34364) | Cod sursa (job #234402)
Cod sursa(job #234402)
#include <stdio.h>
int k=666013;
long long M[4][4],I3[4][4];
void mult()
{
int i,j,l;
long long S[4][4];
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
S[i][j]=0;
for (l=1;l<=3;l++)
S[i][j] = (S[i][j]+(M[i][l]*M[l][j])%k)%k;
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
M[i][j]=S[i][j];
}
void mult1()
{
int i,j,l;
int S[4][4];
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
S[i][j]=0;
for (l=1;l<=3;l++)
S[i][j] = (S[i][j]+(I3[i][l]*M[l][j])%k)%k;
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
I3[i][j]=S[i][j];
}
int main()
{
FILE *in = fopen("iepuri.in","r");
FILE *out = fopen("iepuri.out","w");
int T,x,y,z,A,B,C,n;
fscanf(in,"%d",&T);
for (;T;T--)
{
fscanf(in,"%d%d%d%d%d%d%d",&x,&y,&z,&A,&B,&C,&n);
I3[1][1]=1;I3[2][2]=1;I3[3][3]=1;I3[1][2]=0;I3[1][3]=0;
I3[2][1]=0;I3[2][3]=0;I3[3][1]=0;I3[3][2]=0;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;
while (n)
{
if (n%2) mult1();
mult();
n=n/2;
}
fprintf(out,"%d\n",((I3[1][1]*x)%k+(I3[1][2]*y)%k+(I3[1][3]*z)%k)%k);
}
}