Pagini recente » Cod sursa (job #241581) | Cod sursa (job #739253) | Cod sursa (job #12140) | Cod sursa (job #3165842) | Cod sursa (job #2989406)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
typedef long long ll;
#define MOD 666013
int t, x, y, z, a, b, c, n;
vector<vector<ll>> mult(vector<vector<ll>>& a, vector<vector<ll>>& b) {
vector<vector<ll>> ans(3, vector<ll>(3));
ans[0][0] = (a[0][0] * b[0][0] + a[0][1] * b[1][0] + a[0][2] * b[2][0]) % MOD;
ans[0][1] = (a[0][0] * b[0][1] + a[0][1] * b[1][1] + a[0][2] * b[2][1]) % MOD;
ans[0][2] = (a[0][0] * b[0][2] + a[0][1] * b[1][2] + a[0][2] * b[2][2]) % MOD;
ans[1][0] = (a[1][0] * b[0][0] + a[1][1] * b[1][0] + a[1][2] * b[2][0]) % MOD;
ans[1][1] = (a[1][0] * b[0][1] + a[1][1] * b[1][1] + a[1][2] * b[2][1]) % MOD;
ans[1][2] = (a[1][0] * b[0][2] + a[1][1] * b[1][2] + a[1][2] * b[2][2]) % MOD;
ans[2][0] = (a[2][0] * b[0][0] + a[2][1] * b[1][0] + a[2][2] * b[2][0]) % MOD;
ans[2][1] = (a[2][0] * b[0][1] + a[2][1] * b[1][1] + a[2][2] * b[2][1]) % MOD;
ans[2][2] = (a[2][0] * b[0][2] + a[2][1] * b[1][2] + a[2][2] * b[2][2]) % MOD;
return ans;
}
vector<vector<ll>> pow(vector<vector<ll>>& a, int exp) {
vector<vector<ll>> ans = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}};
while (exp) {
if (exp & 1)
ans = mult(ans, a);
a = mult(a, a);
exp /= 2;
}
return ans;
}
int main() {
fin >> t;
for (int i = 1; i <= t; ++i) {
fin >> x >> y >> z >> a >> b >> c >> n;
vector<vector<ll>> m = {{a, 1, 0}, {b, 0, 1}, {c, 0, 0}};
m = pow(m, n - 2);
fout << (z * m[0][0] + y * m[1][0] + x * m[2][0]) % MOD << '\n';
}
}