Pagini recente » Cod sursa (job #422639) | Cod sursa (job #910656) | Cod sursa (job #601820) | Cod sursa (job #1599649) | Cod sursa (job #2512344)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int t;
int x, y, z;
int a, b, c;
int n;
int aux[4][4];
inline void inmult(int a[][4], int b[][4], int c[][4])
{
for (int i = 1; i <= 3; i++)
for (int j = 1; j <= 3; j++)
for (int k = 1; k <= 3; k++)
c[i][j] = (c[i][j] + (1ll * a[i][k] * b[k][j]) % mod) % mod;
}
inline void solve()
{
int r[4][4];
memset(r, 0, sizeof(r));
r[1][1] = r[2][2] = r[3][3] = 1;
int m[4][4];
memset(m, 0, sizeof(m));
m[1][2] = m[2][3] = 1;
m[3][1] = c;
m[3][2] = b;
m[3][3] = a;
//ridicam matricea m la puterea n-2;
int p = n - 2;
while (p)
{
if (p % 2 == 1)
{
//r = r * m;
memset(aux, 0, sizeof(aux));
inmult(r, m, aux);
memcpy(r, aux, sizeof(aux));
}
p /= 2;
memset(aux, 0 , sizeof(aux));
inmult(m, m, aux);
memcpy(m, aux, sizeof(aux));
}
fout << (x * r[3][1] + y * r[3][2] + z * r[3][3]) % mod << "\n";
}
int main()
{
fin >> t;
while (t--)
{
fin >> x >> y >> z;
fin >> a >> b >> c;
fin >> n;
solve();
}
return 0;
}