Pagini recente » Cod sursa (job #143400) | Cod sursa (job #1506427) | Cod sursa (job #1667876) | Cod sursa (job #552653) | Cod sursa (job #2742725)
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
void multiply(vector<vector<int>> &A, vector<vector<int>> B) {
vector<vector<int>> temp (A.size(), vector<int>(A[0].size(), 0));
int N = A.size();
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
for (int k = 0; k < N; ++k) {
temp[i][j] += (A[i][k] * B[k][j]) % MOD;
}
}
}
A = temp;
}
int main() {
int T, X, Y, Z, A, B, C, N;
f >> T;
while (T) {
T--;
f >> X >> Y >> Z >> A >> B >> C >> N;
vector<vector<int>> matrix = {{0, 1, 0}, {0, 0, 1}, {C, B, A}};
vector<vector<int>> matrixAns = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
N -= 2;
while (N) {
if (N % 2) {
N--;
multiply(matrixAns, matrix);
}
N /= 2;
multiply(matrix, matrix);
}
g << (matrixAns[2][0] * X % MOD + matrixAns[2][1] * Y % MOD + matrixAns[2][2] * Z % MOD) % MOD << '\n';
}
f.close();
g.close();
return 0;
}