Pagini recente » Cod sursa (job #47665) | Cod sursa (job #938591) | Cod sursa (job #2716210) | Cod sursa (job #619264) | Cod sursa (job #2262122)
#include <bits/stdc++.h>
#define ll long long
#define mod 666013
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
int t;
ll x, y, z, a, b, c, k, mat[3][3];
void mul(ll a[3][3], ll b[3][3]) {
ll p[3][3];
memset(p, 0, sizeof(p));
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++) {
p[i][j] += a[i][k] * b[k][j];
p[i][j] %= mod;
}
memcpy(a, p, sizeof(p));
}
ll lg(ll k) {
k -= 2;
memset(mat, 0, sizeof(mat));
mat[1][0] = mat[2][1] = 1;
mat[0][2] = c;
mat[1][2] = b;
mat[2][2] = a;
ll aux[3][3];
memset(aux, 0, sizeof(aux));
bool f = 0;
for (ll i = 0; i < 31; i++) {
if (i)
mul(mat, mat);
if (k & (1 << i)) {
if (!f) {
memcpy(aux, mat, sizeof(mat));
f = 1;
} else mul(aux, mat);
}
}
return (x * aux[0][2] + y * aux[1][2] + z * aux[2][2]) % mod;
}
int main(){
in >> t;
while (t--) {
in >> x >> y >> z >> a >> b >> c >> k;
out << lg(k) << '\n';
}
return 0;
}