Pagini recente » Cod sursa (job #1593706) | Cod sursa (job #1745658) | Cod sursa (job #1326241) | Cod sursa (job #1624631) | Cod sursa (job #2334038)
#include <fstream>
const int MOD = 666013;
std::ifstream in("iepuri.in");
std::ofstream out("iepuri.out");
void atrib(int a[3][3], int b[3][3]) {
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
a[i][j] = b[i][j];
}
void produs(int a[3][3], int b[3][3]) {
int c[3][3] = {0};
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
for (int k = 0; k < 3; ++k)
c[i][j] = (c[i][j] + 1LL * a[i][k] * b[k][j]) % MOD;
atrib(a, c);
}
void putere(int a[3][3], int p) {
int res[3][3];
atrib(res, a);
--p;
for (; p; p >>= 1) {
if (p & 1)
produs(res, a);
produs(a, a);
}
atrib(a, res);
}
int main() {
int t;
in >> t;
while (t--) {
int x, y, z, a, b, c, n;
in >> x >> y >> z >> a >> b >> c >> n;
int M[3][3]={{a, 1, 0},{b, 0, 1},{c, 0, 0}};
putere(M, n - 2);
out << (1LL * z * M[0][0] + 1LL * y * M[1][0] + 1LL * x * M[2][0]) % MOD << "\n";
}
}