Pagini recente » Cod sursa (job #1389633) | Cod sursa (job #2571954) | Cod sursa (job #1384207) | Cod sursa (job #2208380) | Cod sursa (job #2292614)
#include<fstream>
using namespace std;
ifstream in ("iepuri.in");
ofstream out ("iepuri.out");
const int mod = 666013;
int aux[4][4] = {{0,0,0,0},{0,0,0,0},{0,1,0,0},{0,0,1,0}};
int cc[4][4],mat[4][4],ini[4][4],iepuri[4][4];
int t,x,y,z,a,b,c,k;
void inmulteste (int aa[4][4], int bb[4][4]) {
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
cc[i][j] = 0;
}
}
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
for (int k = 1; k <= 3; k ++) {
cc[i][j] = (cc[i][j] + 1LL*aa[i][k] * bb[k][j]) % mod;
}
}
}
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
aa[i][j] = cc[i][j];
}
}
return;
}
void exponentiere (int n) {
if (n/2 > 0) {
exponentiere(n/2);
inmulteste (mat,mat);
}
if (n % 2 == 1) {
inmulteste (mat,ini);
}
}
int main (void) {
in >> t;
while (t --) {
in >> x >> y >> z >> a >> b >> c >> k;
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
iepuri[i][j] = 0;
}
}
iepuri[1][1] = x; iepuri[1][2] = y; iepuri[1][3] = z;
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
ini[i][j] = aux[i][j];
}
}
ini[1][3] = c; ini[2][3] = b; ini[3][3] = a;
for (int i = 1; i <= 3; i ++) {
for (int j = 1; j <= 3; j ++) {
mat[i][j] = 0;
}
mat[i][i] = 1;
}
exponentiere(k);
inmulteste(iepuri,mat);
out << iepuri[1][1] <<"\n";
}
return 0;
}