Pagini recente » Cod sursa (job #2966339) | Cod sursa (job #2594405) | Cod sursa (job #2121810) | Cod sursa (job #951604) | Cod sursa (job #2870388)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
using ll = long long;
const int MAXN = 3;
const int MOD = 666013;
struct Matrix {
ll a[MAXN + 1][MAXN + 1];
Matrix() {
memset(a, 0, sizeof(a));
}
Matrix operator *(const Matrix &other) const {
Matrix sol;
for(int i = 1; i <= MAXN; i++)
for(int j = 1; j <= MAXN; j++)
for(int k = 1; k <= MAXN; k++)
sol.a[i][j] = (sol.a[i][j] + a[i][k] * other.a[k][j]) % MOD;
return sol;
}
};
Matrix pwr(Matrix a, int b) {
Matrix sol = a;
while(b) {
if(b % 2 == 1)
sol = sol * a;
a = a * a;
b /= 2;
}
return sol;
}
inline void solve () {
int x, y, z, a, b, c, n;
fin >> x >> y >> z >> a >> b >> c >> n;
Matrix init;
init.a[3][1] = x;
init.a[3][2] = y;
init.a[3][3] = z;
Matrix M;
M.a[1][3] = c;
M.a[2][3] = b;
M.a[3][3] = a;
M.a[2][1] = M.a[3][2] = 1;
init = init * pwr(M, n - 1);
fout << init.a[3][1] << '\n';
}
int main() {
int t;
fin >> t;
while(t--)
solve ();
return 0;
}