Pagini recente » Cod sursa (job #2815128) | Cod sursa (job #2041457) | Cod sursa (job #1354347) | Cod sursa (job #144163) | Cod sursa (job #2806102)
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const int Mod = 666013;
int n,a,b,c,x,y,z;
int p[5][5],d[5][5],aux[5][5],rez[5][5];
void lgput(int e)
{
p[1][1] = 1, p[1][2] = 0, p[1][3] = 0;
p[2][1] = 0, p[2][2] = 1, p[2][3] = 0;
p[3][1] = 0, p[3][2] = 0, p[3][3] = 1;
while(e)
{
if(e%2==0)
{
e/=2;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
{
aux[i][j] += 1LL * d[i][k] * d[k][j] % Mod;
aux[i][j] %= Mod;
}
}
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
d[i][j] = aux[i][j];
aux[i][j] = 0;
}
}
}
else
{
--e;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int k=1;k<=3;k++)
{
aux[i][j] += 1LL * p[i][k] * d[k][j] % Mod;
}
}
}
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
p[i][j] = aux[i][j];
aux[i][j] = 0;
}
}
}
}
}
void solve_test()
{
f>>x>>y>>z>>a>>b>>c>>n;
d[1][1] = 0, d[1][2] = 0, d[1][3] = c;
d[2][1] = 1, d[2][2] = 0, d[2][3] = b;
d[3][1] = 0, d[3][2] = 1, d[3][3] = a;
lgput(n-2);
rez[1][1] = x, rez[1][2] = y, rez[1][3] = z;
for(int i=1;i<=3;i++)
{
for(int k=1;k<=3;k++)
{
aux[1][i] += 1LL * rez[1][k] * p[k][i] % Mod;
aux[1][i] %= Mod;
}
}
for(int i=1;i<=3;i++)
{
rez[1][i] = aux[1][i];
aux[1][i] = 0;
}
g<<rez[1][3]<<' ';
}
int main()
{
int t;
f>>t;
for(int test=1;test<=t;test++)
{
solve_test();
}
return 0;
}