Pagini recente » Cod sursa (job #1698774) | Cod sursa (job #510446) | Cod sursa (job #873706) | Cod sursa (job #2315271) | Cod sursa (job #3197620)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("iepuri.in");
ofstream fout ("iepuri.out");
int Sol[3][3], M[3][3];
const int MOD = 666013;
void Multiply (int A[3][3], int B[3][3])
{
long long C[3][3];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
{
C[i][j] = 0;
for (int k = 0; k < 3; k++)
{
C[i][j] += 1LL*A[i][k]*B[k][j];
}
C[i][j] %= MOD;
}
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
A[i][j] = C[i][j];
}
int main()
{
// + problema cover1 de pe campion
int t;
fin >> t;
while(t--)
{
int x, y, z, a, b, c, n;
fin >> x >> y >> z >> a >> b >> c >> n;
Sol[0][0] = x;
Sol[0][1] = y;
Sol[0][2] = z;
M[0][0] = 0;
M[0][1] = 0;
M[0][2] = c;
M[1][0] = 1;
M[1][1] = 0;
M[1][2] = b;
M[2][0] = 0;
M[2][1] = 1;
M[2][2] = a;
int k = n;
while (k)
{
if (k % 2 == 1)
Multiply(Sol, M);
Multiply(M,M);
k = k / 2;
}
fout << Sol[0][0] << '\n';
}
return 0;
}