Pagini recente » Cod sursa (job #1213716) | Cod sursa (job #1489127) | Cod sursa (job #2306657) | Cod sursa (job #3154994) | Cod sursa (job #2047208)
#include <iostream>
#include <fstream>
#define mod 666013
using namespace std;
unsigned long long t, x, y, z, a, b, c, n;
unsigned long long m[4][4], sol[4][4], asd[4][4], sda[4][4];
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int main(){
f >> t;
for(; t > 0; --t){
f >> x >> y >> z >> a >> b >> c >> n;
m[1][1] = 0, m[1][2] = 1, m[1][3] = 0;
m[2][1] = 0, m[2][2] = 0, m[2][3] = 1;
m[3][1] = c, m[3][2] = b, m[3][3] = a;
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
if(i == j) sol[i][j] = 1, asd[i][j] = 1;
else sol[i][j] = 0, asd[i][j] = 0;
}
}
for(int l = 0; (1LL<<l) <= n; ++l){
if((1LL<<l) & n){
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
asd[i][j] = ((sol[i][1] * m[1][j])%mod + (sol[i][2] * m[2][j])%mod + (sol[i][3] * m[3][j])%mod) % mod;
}
}
}
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
sda[i][j] = ((m[i][1] * m[1][j])%mod + (m[i][2] * m[2][j])%mod + (m[i][3] * m[3][j])%mod) % mod;
}
}
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
sol[i][j] = asd[i][j];
m[i][j] = sda[i][j];
}
}
}
g << ((sol[1][1] * x)%mod + (sol[1][2] * y)%mod + (sol[1][3] * z)%mod)%mod<< '\n';
}
}