Pagini recente » Cod sursa (job #2816475) | Cod sursa (job #132753) | Cod sursa (job #1333048) | Cod sursa (job #1108900) | Cod sursa (job #233045)
Cod sursa(job #233045)
#include <cstdio>
#include <cstring>
long long a[3][3], b[3][3];
int x,y,z,n,t;
void mult( long long a[3][3] , long long b[3][3] )
{
long long z[3][3];
int i, j, k;
for (i = 0; i < 3; ++i)
for (j = 0; j < 3; ++j) z[i][j] = 0;
for (i = 0; i < 3; ++i)
for (j = 0; j < 3; ++j)
for (k = 0; k < 3; ++k) z[i][j] += (a[i][k] * b[k][j]) % 666013;
for (i = 0; i < 3; ++i)
for (j = 0; j < 3; ++j)
b[i][j] = z[i][j] % 666013;
}
int main()
{
long long i;
int j;
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
scanf("%d", &t);
for (; t; --t)
{
scanf("%d %d %d %d %d %d %d", &x, &y, &z, &a[2][2], &a[2][1], &a[2][0], &n);
a[0][1] = a[1][2] = 1;
b[0][0] = b[1][1] = b[2][2] = 1;
for (i = 1; i <= n; i <<= 1)
{
if (n & i) mult(a,b);
mult(a,a);
}
printf("%lld\n", (b[0][0]*x + b[0][1]*y + b[0][2]*z) % 666013);
for (j = 0; j < 3; ++j)
{
memset(a[j], 0, sizeof(a[j]));
memset(b[j], 0, sizeof(b[j]));
}
}
}