Pagini recente » Cod sursa (job #1801994) | Cod sursa (job #445719) | Cod sursa (job #1087013) | Cod sursa (job #2825596) | Cod sursa (job #2305758)
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
typedef long long ll;
typedef pair< int , int > PII;
ll x, y, z, a, b, c, n;
void mult(ll b[3][3], ll m[3][3]) {
ll rs[3][3] = {};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
ll cnt = 0;
for (int k = 0; k < 3; k++) {
cnt += b[i][k] * m[k][j];
cnt %= MOD;
}
rs[i][j] = cnt;
}
}
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
b[i][j] = rs[i][j];
}
void pw(ll mat[3][3], int p, ll rs[3][3]) {
if (p <= 1) return ;
pw(mat, p / 2, rs);
mult(mat, mat);
if (p & 1) mult(mat, rs);
}
int main(){
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t;
cin >> t;
while (t--) {
cin >> x >> y >> z >> a >> b >> c >> n;
ll mat[3][3] = {{a, b, c}, {1, 0, 0}, {0, 1, 0}};
ll rs[3][3] = {{a, b, c}, {1, 0, 0}, {0, 1, 0}};
pw(mat, n - 2, rs);
ll ans = mat[0][0] * z + mat[0][1] * y + mat[0][2] * x;
cout << ans % MOD << "\n";
}
return 0;
}