Cod sursa(job #167556)

Utilizator K0nTr0LBucatea Madalin Stefan K0nTr0L Data 29 martie 2008 18:52:40
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#include<mem.h>
long long t,a[3][3],b[3][3],r[3][3],n,x,y,z,i,j,k,l;
FILE *in,*out;

void inmulteste(long long x[3][3],long long y[3][3]){
int i,j,k;
long long z[3][3];
for(i=0;i<3;i++)
  for(j=0;j<3;j++){
   z[i][j]=0;
    for(k=0;k<3;k++)
     z[i][j]=(z[i][j]+x[i][k]*y[k][j])%666013;
  }
memcpy(y,z,sizeof(z));
}

int main(){
in=fopen("iepuri.in","rt");
out=fopen("iepuri.out","wt");
fscanf(in,"%d",&t);
for(l=1;l<=t;l++){
memset(a,0,sizeof(a));
memset(r,0,sizeof(r));
fscanf(in,"%d%d%d%d%d%d%d",&x,&y,&z,&a[0][0],&a[0][1],&a[0][2],&n);
r[0][0]=r[1][1]=r[2][2]=1;a[1][0]=a[2][1]=1;
n=n-2;
do{
  if(n&1){
   n--;
   inmulteste(a,r);
  }
 n=n>>1;
 inmulteste(a,a);
} while(n-1);
inmulteste(a,r);
k=0;
k=(r[0][0]*z+r[0][1]*y+r[0][2]*x)%666013;
fprintf(out,"%d\n",k);
}
return 0;
}