Pagini recente » Cod sursa (job #748482) | Cod sursa (job #150870) | Cod sursa (job #2737210) | Cod sursa (job #577389) | Cod sursa (job #1466727)
#include <iostream>
#include <fstream>
#define Mod 666013
using namespace std;
struct matr{
long long Aa[3][3];
matr(long long a00 = 0, long long a01 = 0, long long a02 = 0,
long long a10 = 0, long long a11 = 0, long long a12 = 0,
long long a20 = 0, long long a21 = 0, long long a22 = 0) {
Aa[0][0] = a00; Aa[0][1] = a01; Aa[0][2] = a02;
Aa[1][0] = a10; Aa[1][1] = a11; Aa[1][2] = a12;
Aa[2][0] = a20; Aa[2][1] = a21; Aa[2][2] = a22;
}
};
matr inm(matr a, matr b) {
int i, j, k;
matr c;
for (k = 0; k < 3; ++k)
for (j = 0; j < 3; ++j)
for (i = 0; i < 3; ++i)
c.Aa[k][j] = (c.Aa[k][j] + a.Aa[k][i] * b.Aa[i][j]) % Mod;
return c;
}
int main() {
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int k, masc, A, B, C, X, Y, Z,t;
f >> t;
while (t) {
f >> X >> Y >> Z >> A >> B >> C >> k;
matr a(0, 0, C,
1, 0, B,
0, 1, A),
s(1, 0, 0,
0, 1, 0,
0, 0, 1);
masc = 1;
while (masc <= k-2) {
if (k-2 & masc)
s = inm(s, a);
a = inm(a, a);
masc = masc << 1;
}
long long b = (s.Aa[0][2] * X + s.Aa[1][2] * Y + s.Aa[2][2] * Z) % Mod;
g << b << "\n";
t--;
}
f.close();
g.close();
system("pause");
return 0;
}