Pagini recente » Cod sursa (job #1829684) | Cod sursa (job #924090) | Cod sursa (job #3148031) | Cod sursa (job #2985057) | Cod sursa (job #2368636)
#include <bits/stdc++.h>
#define MOD 666013
#define ll long long
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long int t, x, y, z, a, b, c, n;
void mult(int m1[3][3], int m2[3][3], int m3[3][3])
{
for(int i = 0; i < 3; i++)
for(int j = 0; j < 3; j++)
{
m3[i][j] = 0;
for(int t = 0; t < 3; t++)
m3[i][j] = (m3[i][j]+ 1LL*m1[i][t]*m2[t][j])%MOD;
}
}
void logt(int k, int q[3][3], int m[3][3])
{
int aux[3][3];
for(int i = 0; (1LL<<i) <= k; i++)
{
if(k&(1<<i))
{
mult(q, m, aux);
memcpy(m, aux, sizeof(aux));
}
mult(q, q, aux);
memcpy(q, aux, sizeof(aux));
}
}
int main()
{
fin >> t;
while(t--)
{
fin >> x >> y >> z >> a >> b >> c >> n;
int q[3][3], sol[3][3];
memset(q, 0, sizeof(q));
memset(sol, 0, sizeof(sol));
q[0][2] = c;
q[1][0] = 1;
q[1][2] = b;
q[2][1] = 1;
q[2][2] = a;
sol[0][0] = sol[1][1] = sol[2][2] = 1;
logt(n-2, q, sol);
fout << (1LL*sol[0][2]*x + 1LL*sol[1][2]*y+ 1LL*sol[2][2]*z)%MOD << '\n';
}
return 0;
}