Pagini recente » Cod sursa (job #332990) | Cod sursa (job #185920) | Cod sursa (job #2806931) | Cod sursa (job #2860784) | Cod sursa (job #2721590)
#include <fstream>
#include <iostream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
const long long MOD=666013;
long long m[4][4], p[4][4], rez[101], k, sol[4][4];
void inmulteste(long long m1[4][4], long long m2[4][4]){
long long aux[4][4];
for(int i=1;i<=3;++i){
for(int j = 1; j <= 3; j++) {
aux[i][j] = 0;
for(int k = 1; k <= 3; k++) {
aux[i][j] = (aux[i][j] + m1[i][k] * m2[k][j]) % MOD;
}
}
}
for(int i=1;i<=3;++i){
for(int j = 1; j <= 3; j++) {
m1[i][j] = aux[i][j];
}
}
}
int main(){
long long x, y, z, a, b, c, n, t;
cin >> t;
for(int i=1;i<=t;++i){
cin >> 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;
p[1][1]=x;
p[2][1]=y;
p[3][1]=z;
sol[1][1] = sol[2][2] = sol[3][3] = 1;
while(n){
if(n%2){
inmulteste(sol, m);
}
inmulteste(m, m);
n/=2;
}
inmulteste(sol, p);
rez[++k]=sol[1][1];
}
for(int i=1;i<=k;++i){
cout << rez[i] << "\n";
}
return 0;
}