Pagini recente » Cod sursa (job #2435691) | Cod sursa (job #1921198) | Cod sursa (job #2302069) | Cod sursa (job #2970616) | Cod sursa (job #1513424)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
const int MOD=666013;
int t, x, y, z, a, b, c, n;
void mul(int A[][5], int B[][5])
{
int C[5][5];
for(int i=1; i<=3; ++i)
for(int j=1; j<=3; ++j)
C[i][j]=(1ll*A[i][1]*B[1][j]%MOD+1ll*A[i][2]*B[2][j]%MOD+1ll*A[i][3]*B[3][j]%MOD)%MOD;
for(int i=1; i<=3; ++i)
for(int j=1; j<=3; ++j)
A[i][j]=C[i][j];
}
int put(int n)
{
int I[5][5], A[5][5];
for(int i=1; i<=3; ++i)
for(int j=1; j<=3; ++j)
I[i][j]=(i==j);
A[1][1]=a, A[1][2]=1, A[1][3]=0;
A[2][1]=b, A[2][2]=0, A[2][3]=1;
A[3][1]=c, A[3][2]=0, A[3][3]=0;
for(int mask=1; mask<=n; mask<<=1)
{
if(mask&n)
mul(I, A);
mul(A, A);
}
return (1ll*z*I[1][1]%MOD+1ll*y*I[2][1]%MOD+1ll*x*I[3][1]%MOD)%MOD;
}
int main()
{
cin>>t;
while(t--)
{
cin>>x>>y>>z>>a>>b>>c>>n;
cout<<put(n-2)<<'\n';
}
return 0;
}