Pagini recente » Cod sursa (job #3153512) | Cod sursa (job #463748) | Cod sursa (job #1416067) | Cod sursa (job #1587662) | Cod sursa (job #1946038)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
const int NMax=100000000;
const int MOD = 666013;
int T,X,Y,z,A,B,C,N;
int s[4][4], Z[4][4];
void Multiply(int A[4][4], int B[4][4])
{
long long C[4][4] ;
for(int i = 1; i <= 3; ++i)
for(int j = 1; j <= 3; ++j)
C[i][j] = 0;
for(int i = 1; i <= 3; ++i)
for(int j = 1; j <= 3; ++j)
for(int k = 1; k <= 3; ++k)
{
C[i][j] += 1LL * A[i][k] * B[k][j];
C[i][j] %= MOD;
}
for(int i = 1; i <= 3; ++i)
for(int j = 1; j <= 3; ++j)
A[i][j] = C[i][j];
}
int main()
{
fin>>T;
while(T)
{
fin>>X>>Y>>z>>A>>B>>C>>N;
for(int i = 1; i <= 3; ++i)
for(int j = 1; j <= 3; ++j){
s[i][j] = 0;
Z[i][j] = 0;
}
Z[2][1] = Z[3][2] =1; Z[1][3] =C; Z[2][3] =B; Z[3][3] = A;
s[1][1] = X; s[1][2]= Y; s[1][3] = z;
while(N)
{
if(N % 2 == 1)
Multiply(s,Z);
Multiply(Z,Z);
N = N / 2;
}
fout << s[1][1] << "\n";
T--;
}
return 0;
}