Pagini recente » Cod sursa (job #896688) | Cod sursa (job #806912) | Cod sursa (job #290767) | Cod sursa (job #2894589) | Cod sursa (job #2530848)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int unu[4][4];
int mat[4][4];
int aux[4][4];
int MOD = 666013;
void setI(){
int i,j;
for(i = 1; i <= 3; i++){
for(j = 1; j <= 3; j++){
if(i == j){
unu[i][j] = 1;
}else{
unu[i][j] = 0;
}
}
}
}
void setmat(int A,int B,int C){
mat[1][1] = A;
mat[1][2] = B;
mat[1][3] = C;
mat[2][1] = 1;
mat[2][2] = 0;
mat[2][3] = 0;
mat[3][1] = 0;
mat[3][2] = 1;
mat[3][3] = 0;
}
void matmul(){
int i,j,k;
for(i = 1; i <= 3; i++){
for(j = 1; j <= 3; j++){
aux[i][j] = ((unu[i][1]*mat[1][j])%MOD + (unu[i][2]*mat[2][j])%MOD + (unu[i][3]*mat[3][j])%MOD)%MOD;
}
}
for(i = 1; i <= 3; i++){
for(j = 1; j <= 3; j++){
unu[i][j] = aux[i][j];
}
}
}
void matmat(){
int i,j,k;
for(i = 1; i <= 3; i++){
for(j = 1; j <= 3; j++){
aux[i][j] = ((mat[i][1]*mat[1][j])%MOD + (mat[i][2]*mat[2][j])%MOD + (mat[i][3]*mat[3][j])%MOD)%MOD;
}
}
for(i = 1; i <= 3; i++){
for(j = 1; j <= 3; j++){
mat[i][j] = aux[i][j];
}
}
}
void putlog(int n){
while(n != 0){
if(n%2 == 1){
matmul();
}
matmat();
n>>=1;
}
}
int main()
{
int i,A,B,C,t,x0,x1,x2,n;
int rez;
fin>>t;
for(i = 1; i <= t; i++){
fin>>x0>>x1>>x2>>A>>B>>C>>n;
setI();
setmat(A,B,C);
putlog(n-2);
fout<<((unu[1][1]*x2)%MOD+(unu[1][2]*x1)%MOD + (unu[1][3]*x0)%MOD)%MOD<<endl;
}
return 0;
}