Pagini recente » Cod sursa (job #1206875) | Cod sursa (job #2363428) | Cod sursa (job #335950) | Cod sursa (job #620538) | Cod sursa (job #1958079)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int Sol[5][5],Z[5][5];
int N,T;
void Multiply(int A[5][5], int B[5][5])
{
int C[5][5];
memset(C,0,sizeof(C));
for(int i=1;i<=3;++i)
{
for(int j=1;j<=3;++j)
{
long long s=0;
for(int k=1;k<=3;k++)
{
s+=(1LL*A[i][k]*B[k][j])%666013;
}
C[i][j]=s%666013;
}
}
memcpy(B,C,sizeof(C));
}
void Solve()
{
while(N)
{
if(N%2==1)
{
Multiply(Z,Sol);
}
Multiply(Z,Z);
N=N/2;
}
}
void Print()
{
fout<<Sol[1][1]<<"\n";
}
void read()
{
fin>>T;
for(int i=1;i<=T;i++)
{
memset(Sol,0,sizeof(Sol));
memset(Z,0,sizeof(Z));
int X,Y,z,A,B,C;
fin>>X>>Y>>z>>A>>B>>C>>N;
N=N-2;
Sol[1][1]=z; Sol[2][1]=Y; Sol[3][1]=X;
Z[1][1]=A; Z[1][2]=B; Z[1][3]=C; Z[2][1]=1; Z[3][2]=1;
Solve();
Print();
}
}
int main()
{
read();
return 0;
}