Pagini recente » Cod sursa (job #871682) | Cod sursa (job #727794) | Cod sursa (job #563185) | Cod sursa (job #2515785) | Cod sursa (job #3277210)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
#define MOD 666013
typedef long long mat[3][3];
long long n, x, y, z, a, b, c, m;
void mult(mat &X, mat Y)
{
mat C;
for(int i=0; i<=2; i++)
for(int j=0; j<=2; j++)
C[i][j]=X[i][j];
for(int i=0; i<=2; i++)
for(int j=0; j<=2; j++){
X[i][j]=0;
for(int k=0; k<=2; k++){
X[i][j] = ((C[i][k]*Y[k][j])%MOD + X[i][j])%MOD;
}
}
}
void dub(mat &X)
{
mat C;
for(int i=0; i<=2; i++)
for(int j=0; j<=2; j++)
C[i][j]=X[i][j];
for(int i=0; i<=2; i++)
for(int j=0; j<=2; j++){
X[i][j]=0;
for(int k=0; k<=2; k++){
X[i][j] = ((C[i][k]*C[k][j])%MOD + X[i][j])%MOD;
}
}
}
void cer()
{
fin>>x>>y>>z>>a>>b>>c>>m;
mat B={{a,1,0},{b,0,1},{c,0,0}},
A={{1,0,0},{0,1,0},{0,0,1}};
m-=2;
while(m>0){
if(m%2==1)
mult(A,B);
dub(B);
m>>=1;
}
fout<<(z*A[0][0]%MOD + y*A[1][0]%MOD + x*A[2][0]%MOD)%MOD<<"\n";
}
int main()
{
fin>>n;
for(int i=0; i<n; i++)
cer();
}