Pagini recente » Cod sursa (job #1824220) | Cod sursa (job #2712855) | Cod sursa (job #3181004) | Cod sursa (job #1866202) | Cod sursa (job #1408711)
#include <fstream>
using namespace std;
ifstream f ("iepuri.in");
ofstream g ("iepuri.out");
const int MOD = 666013;
int R[4][4], P[4][4], t, x, y, z, a, b, c, n;
void initializare ()
{
R[1][1] = R[2][2] = R[3][3] = 1;
R[1][2] = R[1][3] = R[2][1] = R[2][3] = R[3][1] = R[3][2] = 0;
P[2][1] = P[3][2] = 1;
P[1][3] = c;
P[2][3] = b;
P[3][3] = a;
P[1][1] = P[1][2] = P[2][2] = P[3][1] = 0;
}
void inmulteste (int X[4][4], int Y[4][4])
{
int Z[4][4];
Z[1][1] = X[1][1] * Y[1][1] + X[1][2] * Y[2][1] + X[1][3] * Y[3][1];
Z[1][2] = X[1][1] * Y[1][2] + X[1][2] * Y[2][2] + X[1][3] * Y[3][2];
Z[1][3] = X[1][1] * Y[1][3] + X[1][2] * Y[2][3] + X[1][3] * Y[3][3];
Z[2][1] = X[2][1] * Y[1][1] + X[2][2] * Y[2][1] + X[2][3] * Y[3][1];
Z[2][2] = X[2][1] * Y[1][2] + X[2][2] * Y[2][2] + X[2][3] * Y[3][2];
Z[2][3] = X[2][1] * Y[1][3] + X[2][2] * Y[2][3] + X[2][3] * Y[3][3];
Z[3][1] = X[3][1] * Y[1][1] + X[3][2] * Y[2][1] + X[3][3] * Y[3][1];
Z[3][2] = X[3][1] * Y[1][2] + X[3][2] * Y[2][2] + X[3][3] * Y[3][2];
Z[3][3] = X[3][1] * Y[1][3] + X[3][2] * Y[2][3] + X[3][3] * Y[3][3];
X[1][1] = Z[1][1] % MOD;
X[1][2] = Z[1][2] % MOD;
X[1][3] = Z[1][3] % MOD;
X[2][1] = Z[2][1] % MOD;
X[2][2] = Z[2][2] % MOD;
X[2][3] = Z[2][3] % MOD;
X[3][1] = Z[3][1] % MOD;
X[3][2] = Z[3][2] % MOD;
X[3][3] = Z[3][3] % MOD;
}
int main()
{
f >> t;
for (int i = 1; i <= t; i ++)
{
f >> x >> y >> z >> a >> b >> c >> n;
initializare ();
n -= 2;
while (n)
{
if (n & 1)
inmulteste (R, P);
n >>= 1;
inmulteste (P, P);
}
g << (x * R[1][3] + y * R[2][3] + z * R[3][3]) % MOD << '\n';
}
f.close ();
g.close ();
return 0;
}