Pagini recente » Cod sursa (job #2191106) | Cod sursa (job #2364897) | Cod sursa (job #172258) | Cod sursa (job #1773338) | Cod sursa (job #3191514)
#include <bits/stdc++.h>
using namespace std;
#define int long long
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int A,B,C,X,Y,Z,n;
struct Mat
{
int mat[3][3];
};
const int mod=666013;
Mat S;
Mat prodmat (Mat A, Mat B)
{
Mat C;
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
{
C.mat[i][j]=0;
for(int k=0; k<3; k++)
C.mat[i][j]=( C.mat[i][j]+( A.mat[i][k] * B.mat[k][j])%mod)%mod;
}
return C;
}
Mat putere (Mat a,int n)
{
if(n==1)
return a;
if(n%2==1)
return prodmat(a,putere(a,n-1));
Mat p=putere(a,n/2);
return prodmat(p,p);
}
int32_t main ()
{
int t;
f>>t;
while(t--)
{
f>>X>>Y>>Z>>A>>B>>C>>n;
S=
{
{
{0,1,0},
{0,0,1},
{C,B,A}
}
};
Mat rez=putere(S,n-2);
int nr=((rez.mat[2][0]*X)%mod+(rez.mat[2][1]*Y)%mod+(rez.mat[2][2]*Z)%mod)%mod;
g<<nr<<'\n';
}
return 0;
}