Pagini recente » Cod sursa (job #2288589) | Cod sursa (job #2086704) | Cod sursa (job #1699458) | Cod sursa (job #742213) | Cod sursa (job #2811384)
#include <bits/stdc++.h>
#define din cin
#define dout out
#define pi 3.14159265359
#define sw(x,y) x^=y,y^=x,x^=y
#define bmin(a,b)(((a)<(b))?(a):(b))
#define bmax(a,b)((a>b)?(a):(b))
#define ll long long
#define forq(i,ii,n)for(i=ii;i<n;i++)
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
ll t,x,y,z,a,b,c,n,sol;
struct w{
long long mat[3][3];
} A,T;
w mult(w a,w b){
w c;
for(ll i=0;i<3;i++){
for(ll j=0;j<3;j++){
c.mat[i][j]=0;
for(ll k=0;k<3;k++){
c.mat[i][j]=(c.mat[i][j]+1LL*a.mat[i][k]*b.mat[k][j])%666013;
}
}
}
return c;
}
void solve(){
}
int main()
{
in>>t;
while(t--){
in>>x>>y>>z>>a>>b>>c>>n;
T.mat[0][0]=T.mat[0][2]=T.mat[1][0]=T.mat[1][1]=0;
T.mat[0][1]=T.mat[1][2]=1;
T.mat[2][0]=c;
T.mat[2][1]=b;
T.mat[2][2]=a;
n-=2;
for(ll i=0;i<3;i++){
for(ll j=0;j<3;j++){
if(i==j){
A.mat[i][j]=1;
}else{
A.mat[i][j]=0;
}
}
}
while(n){
if(n%2==0){
n/=2;
T=mult(T,T);
}else{
n--;
A=mult(A,T);
}
}
sol=((A.mat[2][0]*x)%666013 + (A.mat[2][1]*y)%666013 + (A.mat[2][2]*z)%666013)%666013;
out<<sol<<'\n';
}
}