Pagini recente » Cod sursa (job #466511) | Cod sursa (job #2460190) | Cod sursa (job #2910438) | Cod sursa (job #395665) | Cod sursa (job #3158235)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
long long x,y,z,a,b,c,n,inm[4][4],v[4],rez[4][4],i,j,k;
int MOD=666013;
void inmat()
{
long long aux[4][4];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++){
aux[i][j]=0;
for(k=1;k<=3;k++)
aux[i][j]+=(1LL*(inm[i][k]*inm[k][j])%MOD);
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
inm[i][j]=aux[i][j]%MOD;
}
void inmat1()
{
long long aux2[4][4];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++){
aux2[i][j]=0;
for(k=1;k<=3;k++)
aux2[i][j]+=(1LL*(inm[i][k]*rez[k][j])%MOD);
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
rez[i][j]=aux2[i][j]%MOD;
}
void sfarsit()
{
long long aux1[4];
for(i=1;i<=3;i++){
aux1[i]=0;
for(k=1;k<=3;k++)
aux1[i]+=(1LL*(rez[i][k]*v[k])%MOD);
}
for(i=1;i<=3;i++)
v[i]=aux1[i]%MOD;
}
void plog( long long n)
{
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
rez[i][j]=0;
rez[1][1]=1;
rez[2][2]=1;
rez[3][3]=1;
long long exp=n;
while(exp!=0){
if(exp%2==0){
inmat();
exp/=2;
}
else{
inmat1();
exp--;
}
}
}
void solve()
{
cin>>x>>y>>z>>a>>b>>c>>n;
v[1]=x,v[2]=y,v[3]=z;
for(i=1;i<=3;i++)
for( j=1;j<=3;j++)
inm[i][j]=0;
inm[1][2]=1,inm[2][3]=1,inm[3][1]=c,inm[3][2]=b,inm[3][3]=a;
plog(n-2);
sfarsit();
cout<<v[3]<<"\n";
}
int main()
{
long long q;
cin>>q;
while(q--)
solve();
return 0;
}