Pagini recente » Cod sursa (job #1849229) | Cod sursa (job #2118351) | Cod sursa (job #2220080) | Cod sursa (job #2092468) | Cod sursa (job #3330074)
#include <bits/stdc++.h>
using namespace std;
long long mod = 666013;
vector<vector<long long>> mult(vector<vector<long long>> x,vector<vector<long long>> y){
vector<vector<long long>> c(4,vector<long long>(4));
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
long long A = (x[i][1] * y[1][j]) % mod;
long long B = (x[i][2] * y[2][j]) % mod;
long long C = (x[i][3] * y[3][j]) % mod;
c[i][j] = (A + B) % mod;
c[i][j] = (c[i][j] + C) % mod;
}
}
return c;
}
vector<vector<long long>> exp(vector<vector<long long>> x,int n){
vector<vector<long long>> p(4,vector<long long>(4,0));
p[1][1] = p[2][2] = p[3][3] = 1;
while(n){
if(n % 2 == 1)
p = mult(p,x);
x = mult(x,x);
n/=2;
}
return p;
}
int main() {
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int tests;
cin>>tests;
while(tests--){
int x,y,z,a,b,c,n;
cin>>x>>y>>z>>a>>b>>c>>n;
vector<vector<long long>> A(4,vector<long long>(4,0));
vector<vector<long long>> res(4,vector<long long>(4,0));
A[1][1] = a;
A[2][1] = b;
A[3][1] = c;
A[1][2] = 1;
A[2][3] = 1;
res[1][1] = z;
res[1][2] = y;
res[1][3] = x;
A = exp(A,n-2);
res = mult(res,A);
cout<<res[1][1]<<"\n";
}
}