Pagini recente » Cod sursa (job #1116567) | Cod sursa (job #797178) | Cod sursa (job #1860948) | Cod sursa (job #1475588) | Cod sursa (job #1692634)
#include <fstream>
using namespace std;
const long long MOD = 666013;
void multiplyArray(long long A[3][3],long long B[3][3])
{
long long C[3][3];
int i,j,k;
for(i=0;i<=2;++i)
{
for(j=0;j<=2;++j)
{
C[i][j]=0;
for(k=0;k<=2;++k)
{
C[i][j]+=((A[i][k]%MOD)*(B[k][j]%MOD))%MOD;
}
}
}
for(i=0;i<=2;++i)
for(j=0;j<=2;++j)
A[i][j] = C[i][j] % MOD;
};
int main()
{
fstream f("iepuri.in",ios::in);
ofstream g("iepuri.out");
long long A,B,C,X,Y,Z;
long long Arr[3][3],R[3][3];
long long N,T,sol;
f>>T;
do{
f>>X>>Y>>Z>>A>>B>>C>>N;
N-=2;
R[0][0]=X;
R[0][1]=Y;
R[0][2]=Z;
Arr[0][0]=0;
Arr[0][1]=0;
Arr[0][2]=C;
Arr[1][0]=1;
Arr[1][1]=0;
Arr[1][2]=B;
Arr[2][0]=0;
Arr[2][1]=1;
Arr[2][2]=A;
while(N)
{
if(N%2==1)
{
multiplyArray(R,Arr);
}
multiplyArray(Arr,Arr);
N=N/2;
}
sol = (R[0][2])%MOD;
g<<sol<<'\n';
}while(--T);
return 0;
}