Pagini recente » Cod sursa (job #2525817) | Cod sursa (job #820726) | Cod sursa (job #2801234) | Cod sursa (job #1511786) | Cod sursa (job #2568692)
#include<bits/stdc++.h>
#define modulo 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long n, contor, i, j, k, x, y, z, A, B, C, t, p, a[4][4], b[4][4], c[4][4];
int main()
{
fin >> t;
for(contor=1; contor<=t; contor++)
{
fin >> x >> y >> z >> A >> B >> C >> n;
if(n > 2)
{
a[1][1] = 0;
a[1][2] = 0;
a[1][3] = C;
a[2][1] = 1;
a[2][2] = 0;
a[2][3] = B;
a[3][1] = 0;
a[3][2] = 1;
a[3][3] = A;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
if(i == j)
b[i][j] = 1;
else
b[i][j] = 0;
for(p=0; (1 << p)<=n - 2; p++)
{
if(((1 << p) & (n - 2)) > 0)
{
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
{
c[i][j] = 0;
for(k=1; k<=3; k++)
c[i][j] = (c[i][j] + (a[k][j] * b[i][k]) % modulo) % modulo;
}
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
b[i][j] = c[i][j] % modulo;
}
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
{
c[i][j] = 0;
for(k=1; k<=3; k++)
c[i][j] = (c[i][j] + (a[i][k] * a[k][j]) % modulo) % modulo;
}
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
a[i][j] = c[i][j] % modulo;
}
fout << ((x * b[1][3]) % modulo + (y * b[2][3]) % modulo + (z * b[3][3]) % modulo) % modulo;
fout << '\n';
}
if(n == 0)
fout << x << '\n';
if(n == 1)
fout << y << '\n';
if(n == 2)
fout << z << '\n';
}
}