Pagini recente » Cod sursa (job #2491953) | Cod sursa (job #2467320) | Cod sursa (job #3196946) | Cod sursa (job #962242) | Cod sursa (job #806828)
Cod sursa(job #806828)
#include <fstream>
#include <cstdio>
#include <string.h>
using namespace std;
ifstream inte("iepuri.in");
ofstream oute("iepuri.out");
#define mod 666013
void init(long long c[3][3])
{
for (int i=0;i<3;i++)
for (int j=0; j<3; j++)
c[i][j]=0;
}
void multiply(long long a[3][3], long long b[3][3],long long c[3][3])
{ int i,j,k;
long long d[3][3];
//a=b*c;
init (d);
for (i=0;i<3;i++)
for(j=0;j<3;j++)
for (k=0;k<3;k++)
d[i][j]+=b[i][k]*c[k][j];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=d[i][j];
}
int main()
{
long long p[3][3];
long long m[3][3];
long long t,x,y,z,A,B,C,n,i,val,j,k;
inte>>t;
for (i=1;i<=t;i++)
{
inte>>x>>y>>z>>A>>B>>C>>n;
init(p);
p[1][0]=1;
p[2][1]=1;
p[0][0]=A;
p[0][1]=B;
p[0][2]=C;
init(m);
m[0][0]=m[1][1]=m[2][2]=1;
for(n-=2;n;n>>=1)
{ if (1&n)
{multiply(m,m,p);}
multiply(p,p,p);
}
oute<<((m[0][0]*z)%mod+ (m[0][1]*y)%mod + (m[0][2]*x)%mod) % mod;
oute<<endl;
/*if (i==1) {for (j=0;j<3;j++)
{for (k=0;k<3;k++)
oute<<m[j][k]<<' ';
oute<<endl;}}*/
}
return 0;
}