Pagini recente » Cod sursa (job #2487370) | Cod sursa (job #2625048) | Cod sursa (job #74413) | Cod sursa (job #2319150) | Cod sursa (job #1651789)
#include <fstream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <queue>
#include <set>
#include <stack>
#include <algorithm>
#include <cmath>
#include <iomanip>
#define INF 0x3f3f3f3f
#define mod 666013
using namespace std;
int M[4][4];
int t,x,y,z,q,w,e,n;
void inm(int r[4][4],int a[4][4]){
int w[4][4];
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
int s = 0;
for(int k = 1; k <= 3; ++k){
s += (((r[i][k] % mod)*(a[k][j] % mod)) % mod);
}
w[i][j] = s % mod;
}
}
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
r[i][j] = w[i][j] % mod;
}
}
}
void power_mat(int a[4][4],int p){
int r[4][4];
r[1][1] = 1; r[1][2] = 0; r[1][3] = 0;
r[2][1] = 0; r[2][2] = 1; r[2][3] = 0;
r[3][1] = 0; r[3][2] = 0; r[3][3] = 1;
while(p){
if(p % 2 == 1){
p--;
inm(r,a);
}
p /= 2;
inm(a,a);
}
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
a[i][j] = r[i][j] % mod;
}
}
}
int main()
{
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&t);
for(int count = 1; count <= t; ++count){
scanf("%d%d%d%d%d%d%d",&x,&y,&z,&q,&w,&e,&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] = e; M[3][2] = w; M[3][3] = q;
n -= 2;
power_mat(M,n);
printf("%d\n",(M[3][1]*x % mod + M[3][2]*y % mod + M[3][3]*z % mod) % mod);
/* for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
printf("%d ",M[i][j]);
}
printf("\n");
}
printf("\n"); */
}
return 0;
}