Pagini recente » Cod sursa (job #665933) | Cod sursa (job #2770533) | Cod sursa (job #2966624) | Cod sursa (job #2273436) | Cod sursa (job #2644757)
#include <bits/stdc++.h>
#define int long long
#define mod 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
void multiply(int a[][3], int b[3][3], int N) {
int c[N][3];
for(int i = 0; i < N; ++i)
for(int j = 0; j < 3; ++j) {
int sum = 0;
for(int k = 0; k < 3; ++k)
sum = (sum + a[i][k] * b[k][j]) % mod;
c[i][j] = sum;
}
for(int i = 0; i < N; ++i)
for(int j = 0; j < 3; ++j)
a[i][j] = c[i][j];
}
int32_t main () {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int T;
fin >> T;
while(T --) {
int X, Y, Z, A, B, C, N;
fin >> X >> Y >> Z >> A >> B >> C >> N;
N -= 3;
int init[1][3];
init[0][0] = X, init[0][1] = Y, init[0][2] = Z;
int mat[3][3];
mat[0][0] = mat[0][1] = mat[1][1] = mat[2][0] = 0;
mat[1][0] = mat[2][1] = 1;
mat[0][2] = C;
mat[1][2] = B;
mat[2][2] = A;
int val[3][3];
for(int i = 0; i < 3; ++i)
for(int j = 0; j < 3; ++j)
val[i][j] = mat[i][j];
while(N) {
if(N & 1)
multiply(mat, val, 3);
multiply(val, val, 3);
N >>= 1;
}
multiply(init, mat, 1);
fout << init[0][2] << '\n';
}
}