Pagini recente » Cod sursa (job #1912571) | Cod sursa (job #928441) | Cod sursa (job #1451534) | Cod sursa (job #237473) | Cod sursa (job #2315724)
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
const int Mod = 666013;
inline void matProd(int a[3][3], int b[3][3]) {
int ans[3][3] = {0};
for(int i = 0; i < 3; ++i)
for(int j = 0; j < 3; ++j)
for(int k = 0; k < 3; ++k)
ans[i][j] = (ans[i][j] + 1LL * a[i][k] * b[k][j]) % Mod;
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
a[i][j] = ans[i][j];
}
inline int solve(int X, int Y, int Z, int A, int B, int C, int N) {
int rec[3][3] = {0, 0, C,
1, 0, B,
0, 1, A};
int ans[3][3] = {1, 0, 0,
0, 1, 0,
0, 0, 1 };
for (N -= 2; N; N >>= 1) {
if (N & 1)
matProd(ans, rec);
matProd(rec, rec);
}
return (1LL * X * ans[0][2] % Mod + 1LL * Y * ans[1][2] % Mod + 1LL * Z * ans[2][2] % Mod) % Mod;
}
int main() {
int Q;
fin >> Q;
for (; Q; --Q) {
int X, Y, Z, A, B, C, N;
fin >> X >> Y >> Z >> A >> B >> C >> N;
fout << solve(X, Y, Z, A, B, C, N) << '\n';
}
}