Pagini recente » Cod sursa (job #1103311) | Cod sursa (job #2166879) | Cod sursa (job #2149578) | Cod sursa (job #1980004) | Cod sursa (job #3318217)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const int MOD=666013;
int X,Y,Z,A,B,C;
void mul(int A[][3], int B[][3])
{
long long C[3][3];
int i,j,k;
for(i=0;i<3;++i)
for(j=0;j<3;++j)
{
C[i][j]=0;
for(k=0;k<3;++k)
C[i][j]+=(long long)A[i][k]*B[k][j];
}
for(i=0;i<3;++i)
for(j=0;j<3;++j)
A[i][j]=C[i][j]%MOD;
}
int putere(int n)
{
int M[3][3]=
{
{0,0,C},
{1,0,B},
{0,1,A}
};
int V[3][3]=
{
{X,Y,Z},
{0,0,0},
{0,0,0}
};
while(n)
{
if(n&1)
mul(V,M);
mul(M,M);
n>>=1;
}
return V[0][2];
}
int main()
{
int T,N;
f>>T;
while(T--)
{
f>>X>>Y>>Z>>A>>B>>C>>N;
g<<putere(N-2)<<'\n';
}
f.close();
g.close();
return 0;
}