Pagini recente » Cod sursa (job #886167) | Cod sursa (job #1971527) | Cod sursa (job #685560) | Cod sursa (job #2808607) | Cod sursa (job #1833133)
#include <fstream>
#define MOD 666013
using namespace std;
unsigned int i,j,t,x,y,z,a,b,c,n;
unsigned 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])%MOD+(sol[0][1]*aa[1][0])%MOD+(sol[0][2]*aa[2][0])%MOD)%MOD;
aux[0][1]=((sol[0][0]*aa[0][1])%MOD+(sol[0][1]*aa[1][1])%MOD+(sol[0][2]*aa[2][1])%MOD)%MOD;
aux[0][2]=((sol[0][0]*aa[0][2])%MOD+(sol[0][1]*aa[1][2])%MOD+(sol[0][2]*aa[2][2])%MOD)%MOD;
aux[1][0]=((sol[1][0]*aa[0][0])%MOD+(sol[1][1]*aa[1][0])%MOD+(sol[1][2]*aa[2][0])%MOD)%MOD;
aux[1][1]=((sol[1][0]*aa[0][1])%MOD+(sol[1][1]*aa[1][1])%MOD+(sol[1][2]*aa[2][1])%MOD)%MOD;
aux[1][2]=((sol[1][0]*aa[0][2])%MOD+(sol[1][1]*aa[1][2])%MOD+(sol[1][2]*aa[2][2])%MOD)%MOD;
aux[2][0]=((sol[2][0]*aa[0][0])%MOD+(sol[2][1]*aa[1][0])%MOD+(sol[2][2]*aa[2][0])%MOD)%MOD;
aux[2][1]=((sol[2][0]*aa[0][1])%MOD+(sol[2][1]*aa[1][1])%MOD+(sol[2][2]*aa[2][1])%MOD)%MOD;
aux[2][2]=((sol[2][0]*aa[0][2])%MOD+(sol[2][1]*aa[1][2])%MOD+(sol[2][2]*aa[2][2])%MOD)%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])%MOD+(aa[0][1]*aa[1][0])%MOD+(aa[0][2]*aa[2][0])%MOD)%MOD;
aux[0][1]=((aa[0][0]*aa[0][1])%MOD+(aa[0][1]*aa[1][1])%MOD+(aa[0][2]*aa[2][1])%MOD)%MOD;
aux[0][2]=((aa[0][0]*aa[0][2])%MOD+(aa[0][1]*aa[1][2])%MOD+(aa[0][2]*aa[2][2])%MOD)%MOD;
aux[1][0]=((aa[1][0]*aa[0][0])%MOD+(aa[1][1]*aa[1][0])%MOD+(aa[1][2]*aa[2][0])%MOD)%MOD;
aux[1][1]=((aa[1][0]*aa[0][1])%MOD+(aa[1][1]*aa[1][1])%MOD+(aa[1][2]*aa[2][1])%MOD)%MOD;
aux[1][2]=((aa[1][0]*aa[0][2])%MOD+(aa[1][1]*aa[1][2])%MOD+(aa[1][2]*aa[2][2])%MOD)%MOD;
aux[2][0]=((aa[2][0]*aa[0][0])%MOD+(aa[2][1]*aa[1][0])%MOD+(aa[2][2]*aa[2][0])%MOD)%MOD;
aux[2][1]=((aa[2][0]*aa[0][1])%MOD+(aa[2][1]*aa[1][1])%MOD+(aa[2][2]*aa[2][1])%MOD)%MOD;
aux[2][2]=((aa[2][0]*aa[0][2])%MOD+(aa[2][1]*aa[1][2])%MOD+(aa[2][2]*aa[2][2])%MOD)%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)%MOD+(sol[2][1]*y)%MOD+(sol[2][2]*z)%MOD)%MOD<<"\n";
}
return 0;
}