Pagini recente » Cod sursa (job #1717829) | Cod sursa (job #2447047) | Cod sursa (job #763707) | Cod sursa (job #2542021) | Cod sursa (job #14460)
Cod sursa(job #14460)
#include <cstdio>
#include <string.h>
const int modul = 666013;
int x, y, z, a, b, c, n;
long long p[4][4], sol[4][4], temp[4][4], pow[4][4];
void produs(long long v1[4][4], long long v2[4][4], long long v3[4][4])
{
int i, j, k;
for (i=1; i<=3; ++i)
for (j=1; j<=3; ++j)
for (k=1; k<=3; ++k)
{
v3[i][j] += (v1[i][k] % modul) * (v2[k][j] % modul);
v3[i][j] %= modul;
}
}
void solve()
{
int k;
memset(p, 0, sizeof(p));
memset(pow, 0, sizeof(sol));
p[1][2] = p[2][3] = 1;
p[3][1] = c;
p[3][2] = b;
p[3][3] = a;
pow[1][1] = pow[2][2] = pow[3][3] = 1;
sol[1][1] = sol[2][2] = sol[3][3] = 1;
for (k=0; k<n; k++)
{
memset(temp, 0, sizeof(temp));
produs(pow, p, temp);
memcpy(pow, temp, sizeof(p));
}
int afis = (x * pow[1][1] + y * pow[1][2] + z * pow[1][3]) % modul;
printf("%d\n", afis);
}
void citire()
{
int i, t;
scanf("%d\n", &t);
for (i=1; i<=t; ++i)
{
scanf("%d %d %d %d %d %d %d", &a, &b, &c, &x, &y, &z, &n);
solve();
}
}
int main()
{
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
citire();
return 0;
}