Pagini recente » Cod sursa (job #2056267) | Cod sursa (job #888370) | Cod sursa (job #2541543) | Cod sursa (job #677030) | Cod sursa (job #2742726)
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
void multiply(vector<vector<long long>> &A, vector<vector<long long>> B) {
vector<vector<long long>> temp (A.size(), vector<long long>(A[0].size(), 0));
long long N = A.size();
for (long long i = 0; i < N; ++i) {
for (long long j = 0; j < N; ++j) {
for (long long k = 0; k < N; ++k) {
temp[i][j] += (A[i][k] * B[k][j]) % MOD;
}
}
}
A = temp;
}
int main() {
long long T, X, Y, Z, A, B, C, N;
f >> T;
while (T) {
T--;
f >> X >> Y >> Z >> A >> B >> C >> N;
vector<vector<long long>> matrix = {{0, 1, 0}, {0, 0, 1}, {C, B, A}};
vector<vector<long long>> 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;
}