Pagini recente » Cod sursa (job #401902) | Cod sursa (job #2205283) | Cod sursa (job #3236711) | Cod sursa (job #2551506) | Cod sursa (job #1833130)
#include <fstream>
#define MOD 666013
using namespace std;
int i,j,t,x,y,z,a,b,c,n;
int m[3][3],aa[3][3],sol[3][3],aux[3][3];
int main()
{
ifstream in("iepuri.in");
ofstream out("iepuri.out");
in>>t;
for(i=0;i<t;i++)
{
in>>x>>y>>z>>a>>b>>c>>n;
sol[0][0]=1;
sol[0][1]=0;
sol[0][2]=0;
sol[1][0]=0;
sol[1][1]=1;
sol[1][2]=0;
sol[2][0]=0;
sol[2][1]=0;
sol[2][2]=1;
aa[0][0]=0;
aa[0][1]=1;
aa[0][2]=0;
aa[1][0]=0;
aa[1][1]=0;
aa[1][2]=1;
aa[2][0]=c;
aa[2][1]=b;
aa[2][2]=a;
for(j=0;(1<<j)<n-1;++j)
{
if(((1<<j)&(n-2))>0)
{
aux[0][0]=(sol[0][0]*aa[0][0]+sol[0][1]*aa[1][0]+sol[0][2]*aa[2][0])%MOD;
aux[0][1]=(sol[0][0]*aa[0][1]+sol[0][1]*aa[1][1]+sol[0][2]*aa[2][1])%MOD;
aux[0][2]=(sol[0][0]*aa[0][2]+sol[0][1]*aa[1][2]+sol[0][2]*aa[2][2])%MOD;
aux[1][0]=(sol[1][0]*aa[0][0]+sol[1][1]*aa[1][0]+sol[1][2]*aa[2][0])%MOD;
aux[1][1]=(sol[1][0]*aa[0][1]+sol[1][1]*aa[1][1]+sol[1][2]*aa[2][1])%MOD;
aux[1][2]=(sol[1][0]*aa[0][2]+sol[1][1]*aa[1][2]+sol[1][2]*aa[2][2])%MOD;
aux[2][0]=(sol[2][0]*aa[0][0]+sol[2][1]*aa[1][0]+sol[2][2]*aa[2][0])%MOD;
aux[2][1]=(sol[2][0]*aa[0][1]+sol[2][1]*aa[1][1]+sol[2][2]*aa[2][1])%MOD;
aux[2][2]=(sol[2][0]*aa[0][2]+sol[2][1]*aa[1][2]+sol[2][2]*aa[2][2])%MOD;
sol[0][0]=aux[0][0];
sol[0][1]=aux[0][1];
sol[0][2]=aux[0][2];
sol[1][0]=aux[1][0];
sol[1][1]=aux[1][1];
sol[1][2]=aux[1][2];
sol[2][0]=aux[2][0];
sol[2][1]=aux[2][1];
sol[2][2]=aux[2][2];
}
aux[0][0]=(aa[0][0]*aa[0][0]+aa[0][1]*aa[1][0]+aa[0][2]*aa[2][0])%MOD;
aux[0][1]=(aa[0][0]*aa[0][1]+aa[0][1]*aa[1][1]+aa[0][2]*aa[2][1])%MOD;
aux[0][2]=(aa[0][0]*aa[0][2]+aa[0][1]*aa[1][2]+aa[0][2]*aa[2][2])%MOD;
aux[1][0]=(aa[1][0]*aa[0][0]+aa[1][1]*aa[1][0]+aa[1][2]*aa[2][0])%MOD;
aux[1][1]=(aa[1][0]*aa[0][1]+aa[1][1]*aa[1][1]+aa[1][2]*aa[2][1])%MOD;
aux[1][2]=(aa[1][0]*aa[0][2]+aa[1][1]*aa[1][2]+aa[1][2]*aa[2][2])%MOD;
aux[2][0]=(aa[2][0]*aa[0][0]+aa[2][1]*aa[1][0]+aa[2][2]*aa[2][0])%MOD;
aux[2][1]=(aa[2][0]*aa[0][1]+aa[2][1]*aa[1][1]+aa[2][2]*aa[2][1])%MOD;
aux[2][2]=(aa[2][0]*aa[0][2]+aa[2][1]*aa[1][2]+aa[2][2]*aa[2][2])%MOD;
aa[0][0]=aux[0][0];
aa[0][1]=aux[0][1];
aa[0][2]=aux[0][2];
aa[1][0]=aux[1][0];
aa[1][1]=aux[1][1];
aa[1][2]=aux[1][2];
aa[2][0]=aux[2][0];
aa[2][1]=aux[2][1];
aa[2][2]=aux[2][2];
}
out<<(sol[2][0]*x+sol[2][1]*y+sol[2][2]*z)%MOD<<"\n";
}
return 0;
}