Pagini recente » Cod sursa (job #2873814) | Cod sursa (job #349359) | Cod sursa (job #511742) | Cod sursa (job #525081) | Cod sursa (job #253205)
Cod sursa(job #253205)
#include <stdio.h>
#include <math.h>
#define MOD 666013
long long x, y, z, A, B, C, i, j, k, n, a[4][4], t, rez, b[4][4], nr, c[4][4], q, r;
void mul(long long ex);
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
scanf("%lld", &t);
while (t--) {
scanf("%lld %lld %lld %lld %lld %lld %lld", &x, &y, &z, &A, &B, &C, &n);
a[1][1] = 0;a[1][2] = 1;a[1][3] = 0;
a[2][1] = 0;a[2][2] = 0;a[2][3] = 1;
a[3][1] = C;a[3][2] = B;a[3][3] = A;
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
b[i][j] = a[i][j];
c[i][j] = 0;
}
}
mul(n - 1);
a[1][1] = x;a[1][2] = 0;a[1][3] = 0;
a[2][1] = y;a[2][2] = 0;a[2][3] = 0;
a[3][1] = z;a[3][2] = 0;a[3][3] = 0;
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
c[i][j] = 0;
}
}
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
for (k = 1; k <= 3; ++k) {
c[i][j] = ((c[i][j] % MOD) + ((b[i][k] % MOD) * (a[k][j] % MOD)) % MOD) % MOD;
}
}
}
printf("%lld\n", c[1][1]);
}
return 0;
}
void mul(long long ex) {
long long i, j, k;
rez = 0;
while (ex) {
if (ex % 2 == 0) {
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
for (k = 1; k <= 3; ++k) {
c[i][j] = ((c[i][j] % MOD) + ((a[i][k] % MOD) * (a[k][j] % MOD)) % MOD) % MOD;
}
}
}
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
a[i][j] = c[i][j];
}
}
ex /= 2;
} else {
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
for (k = 1; k <= 3; ++k) {
c[i][j] = ((c[i][j] % MOD) + ((a[i][k] % MOD) * (b[k][j] % MOD)) % MOD) % MOD;
}
}
}
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
b[i][j] = c[i][j];
}
}
--ex;
}
for (i = 1; i <= 3; ++i) {
for (j = 1; j <= 3; ++j) {
c[i][j] = 0;
}
}
}
}