Pagini recente » Cod sursa (job #2408775) | Cod sursa (job #2513455) | Cod sursa (job #1705269) | Cod sursa (job #3125432) | Cod sursa (job #535146)
Cod sursa(job #535146)
#include<stdio.h>
#define mod 666013
FILE *in=fopen("iepuri.in","rt");
FILE *out=fopen("iepuri.out","wt");
int M[3][3],x,y,z,N,T,a[3][3],i,j,aux[3][3],q,k;
int main()
{
fscanf(in,"%d",&T);
M[0][1]=1;
M[1][2]=1;
for(k=1;k<=T;k++)
{
fscanf(in,"%d %d %d %d %d %d %d",&x,&y,&z,&M[2][2],&M[2][1],&M[2][0],&N);
int sol[3][3]={0};
sol[0][0]=sol[1][1]=sol[2][2]=1;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
a[i][j]=M[i][j];
for(i=0;(1<<i)<=N;i++)
{
if( ((1<<i) & N) >0)
{
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
aux[q][j]=(a[q][0]*sol[0][j] + a[q][1]*sol[1][j] + a[q][2]*sol[2][j])%mod;
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
sol[q][j]=aux[q][j];
}
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
aux[q][j]=(a[q][0]*a[0][j] + a[q][1]*a[1][j] + a[q][2]*a[2][j])%mod;
for(q=0;q<=2;q++)
for(j=0;j<=2;j++)
a[q][j]=aux[q][j];
}
int rasp=(x*sol[0][0]+y*sol[0][1]+z*sol[0][2])%mod;
fprintf(out,"%d\n",rasp);
}
}