Pagini recente » Cod sursa (job #2599897) | Cod sursa (job #1543652) | Cod sursa (job #2702531) | Cod sursa (job #351730) | Cod sursa (job #2212226)
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const long long MOD = 666013;
vector< vector< long long > > mult(vector< vector< long long > > a, vector< vector< long long > > b) {
vector< vector< long long > > ret(3, vector< long long >(3));
for(long long i = 0; i < 3; ++i) {
for(long long j = 0; j < 3; ++j) {
for(long long k = 0; k < 3; ++k) {
ret[i][j] += (a[i][k]*b[k][j]%MOD);
ret[i][j] %= MOD;
}
}
}
return ret;
}
vector< vector< long long > > raise(vector< vector< long long > > a, long long b) {
vector< vector< long long > > ret(3, vector< long long >(3));
for(int i = 0; i < 3; ++i) ret[i][i] = 1;
while(b) {
if(b&1) ret = mult(ret, a);
a = mult(a, a);
b >>= 1;
}
return ret;
}
void solve() {
long long n, a, b, c, x, y ,z;
f >> x >> y >> z >> a >> b >> c >> n;
vector< vector< long long > > mat(3, vector< long long >(3));
mat[1][0] = 1;
mat[2][1] = 1;
mat[0][2] = c;
mat[1][2] = b;
mat[2][2] = a;
mat = raise(mat, n);
long long ans =( x*mat[0][0] + y*mat[1][0] + z*mat[2][0] )% MOD;
g << ans << '\n';
}
int main() {
int t;
f >> t;
while(t--) solve();
return 0;
}