Pagini recente » Cod sursa (job #590763) | Cod sursa (job #2244125) | Cod sursa (job #2605099) | Cod sursa (job #2645811) | Cod sursa (job #2512351)
#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])
{
long long s = 0;
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
{
s = 0;
for(int k = 1; k <= 3; k++)
s += (1LL * a[i][k] * b[k][j]);
c[i][j] = s%mod;
}
}
inline void solve()
{
int r[4][4], aux[4][4], m[4][4];
memset(r, 0, sizeof(r));
memset(m, 0, sizeof(m));
memset(aux, 0, sizeof(aux));
r[1][1] = r[2][2] = r[3][3] = 1;
m[2][1] = m[3][2] = 1;
m[1][3] = c;
m[2][3] = b;
m[3][3] = a;
int p = n-2;
while (p)
{
if (p % 2 == 1)
{
memset(aux, 0, sizeof(aux));
inmult(r, m, aux);
memcpy(r, aux, sizeof(aux));
}
memset(aux, 0, sizeof(aux));
inmult(m, m, aux);
memcpy(m, aux, sizeof(aux));
p /= 2;
}
fout << (1ll * (1ll * r[1][3] * x + 1ll * r[2][3] * y + 1ll * r[3][3] * z)) % mod << "\n";
}
int main()
{
fin >> t;
while (t--)
{
fin >> x >> y >> z;
fin >> a >> b >> c;
fin >> n;
solve();
}
return 0;
}