Pagini recente » Cod sursa (job #3283381) | Cod sursa (job #1910719) | Cod sursa (job #2926042) | Cod sursa (job #2841081) | Cod sursa (job #2498705)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
ifstream fin ("iepuri.in");
ofstream fout ("iepuri.out");
long long t, x, y, z, a, b, c, n, mat [3][3], basic [3][3];
void init (){
for (int i = 0; i < 3; i ++)
for (int j = 0; j < 3; j ++)
mat [i][j] = basic [i][j] = 0;
}
void Inmultire (long long basic [3][3], long long mat [3][3]){
long long aux [3][3];
for (int i = 0; i < 3; i ++){
for (int j = 0; j < 3; j ++){
aux [i][j] = 0;
for (int k = 0; k < 3; k ++)
aux [i][j] += basic [i][k] * mat [k][j];
aux [i][j] %= mod;
}
}
for (int i = 0; i < 3; i ++)
for (int j = 0; j < 3; j ++)
basic [i][j] = aux [i][j];
}
int main (){
fin >> t;
for (int o = 1; o <= t; o ++){
fin >> x >> y >> z >> a >> b >> c >> n;
n -= 2; init ();
for (int i = 0; i < 3; i ++)
basic [i][i] = 1;
mat [1][0] = mat [2][1] = 1;
mat [0][2] = c, mat [1][2] = b, mat [2][2] = a;
while (n != 0){
if (n % 2 != 0)
Inmultire (basic, mat);
Inmultire (mat, mat);
n /= 2;
}
fout << (x * basic [0][2] + y * basic [1][2] + z * basic [2][2]) % mod << '\n';
}
return 0;
}