Pagini recente » Cod sursa (job #2742540) | Cod sursa (job #233905) | Cod sursa (job #2562792) | Cod sursa (job #3332979) | Cod sursa (job #3326946)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
const int M=666013,N=3;
int rez[4][4];
void produs(int a[N][N], int b[N][N])
{
int aux[N][N] = {{0, 0}, {0, 0}};
for (int i= 0; i < N; i++)
{
for (int k = 0; k < N; k++)
{
for (int j = 0; j < N; j++)
{
aux[i][k] = (aux[i][k] + (long long)a[i][j] * b[j][k] % M) % M;
}
}
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
a[i][j] = aux[i][j];
}
}
}/*
void ridicare(int I[4][4],int exp)
{
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
if(i==j)
rez[i][j]=1;
else
rez[i][j]=0;
}
}
int aux[4][4];
while(exp!=0)
{
if(exp%2==0)
{
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
int s=0;
for(int k=1;k<=3;k++)
{
s=(s+1LL*I[i][k]*I[k][j])%M;
}
aux[i][j]=s;
}
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
I[i][j]=aux[i][j];
}
}
exp/=2;
}
else
{
exp--;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
int s=0;
for(int k=1;k<=3;k++)
{
s=(s+1LL*rez[i][k]*I[k][j])%M;
}
aux[i][j]=s;
}
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
rez[i][j]=aux[i][j];
}
}
}
}
}*/
int main()
{
int t;
cin>>t;
for(int i=1;i<=t;i++)
{
int x,y,z,a,b,c,n;
cin>>x>>y>>z>>a>>b>>c>>n;
n-=2;
int p[N][N] = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
int q[N][N] = {{a, 1, 0}, {b, 0, 1}, {c, 0, 0}};
while (n!=0)
{
if(n%2!=0)
{
produs(p, q);
}
produs(q,q);
n/=2;
}
int suma = ((long long)z * p[0][0] % M + (long long)y * p[1][0] % M +
(long long)p[2][0] * x % M) % M;
cout << suma << "\n";
}
return 0;
}