Pagini recente » Cod sursa (job #2505563) | Cod sursa (job #617046) | Cod sursa (job #2062294) | Borderou de evaluare (job #987029) | Cod sursa (job #1411323)
//#include <iostream>
#include <cstdio>
#define mod 666013
using namespace std;
FILE *f=fopen("iepuri.in","r"),*g=fopen("iepuri.out","w");
long long A,B,C,n,t1,t2,t3,z[4][4],m[4][4],sum;
void inm(long long a[4][4],long long b[4][4])
{
int c[4][4],i,j,h;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
c[i][j]=0;
for(h=1;h<=3;h++)
c[i][j]=(c[i][j]+a[i][h]*b[h][j])%mod;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=c[i][j];
}
int main()
{
int i,t,j,h;
fscanf(f,"%d",&t);
for(i=1;i<=t;i++)
{
fscanf(f,"%lld %lld %lld %lld %lld %lld %lld",&t1,&t2,&t3,&A,&B,&C,&n);
for(j=1;j<=3;j++)
for(h=1;h<=3;h++)
{
if(h!=j)
m[j][h]=0;
else
m[j][h]=1;
z[j][h]=0;
}
z[3][1]=C; z[3][2]=B; z[3][3]=A;
z[1][2]=z[2][3]=1;
n=n-2;
while(n>0)
{
if(n%2==1)
inm(m,z);
inm(z,z);
n=n/2;
}
sum=(m[3][1]*t1+m[3][2]*t2+m[3][3]*t3)%mod;
fprintf(g,"%lld\n",sum);
}
fclose(f);
fclose(g);
return 0;
}