Pagini recente » Cod sursa (job #2364123) | Cod sursa (job #2892129) | Cod sursa (job #2730544) | Cod sursa (job #1888153) | Cod sursa (job #1651799)
#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;
long long M[4][4];
long long t,x,y,z,q,w,e,n;
void inm(long long r[4][4],long long a[4][4]){
long long w[4][4];
for(int i = 1; i <= 3; ++i){
for(int j = 1; j <= 3; ++j){
long long 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(long long a[4][4],long long p){
long long 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("%lld",&t);
for(int count = 1; count <= t; ++count){
scanf("%lld%lld%lld%lld%lld%lld%lld",&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("%lld\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;
}