Pagini recente » Cod sursa (job #94426) | Cod sursa (job #42153) | Cod sursa (job #2575949) | Cod sursa (job #703539) | Cod sursa (job #2240728)
#include <iostream>
#include <fstream>
#define ll long long
#define mod 666013
#define KMAX 3
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
ll x,y,z,a,b,c,n,t;
void multiply_matrix(ll A[KMAX][KMAX], ll B[KMAX][KMAX]) {
ll C[KMAX][KMAX];
for(ll i = 0; i < KMAX; i++) {
for(ll j = 0; j < KMAX; j++) {
C[i][j] = 0;
for(ll k = 0; k <= 2; k++)
C[i][j] = (1LL * C[i][j] % mod + 1LL * A[i][k] * B[k][j] % mod) % mod;
}
}
for(ll i = 0; i < KMAX; i++)
for(ll j = 0; j < KMAX; j++)
A[i][j] = C[i][j];
}
void rez(ll tmp[3][3],ll p)
{
ll aux[KMAX][KMAX] = { {0, 0, c},
{1, 0, b},
{0, 1, a}};
for (ll i = 0; i < KMAX; ++i) {
for (ll j = 0; j < KMAX; ++j) {
tmp[i][j] = (i == j) ? 1 : 0;
}
}
while (p != 1) {
if (p % 2 == 0) {
multiply_matrix(C, C);
p /= 2;
} else {
multiply_matrix(tmp, C);
--p;
}
}
multiply_matrix(C, tmp);
/* for(i = 0; i < KMAX; i++) {
for(j = 0; j < KMAX; j++) {
cout << R[i][j] << " ";
}
cout << endl;
}*/
}
int main()
{
f>>t;
while(t--)
{
f>>x>>y>>z>>a>>b>>c>>n;
ll tmp[3][3];
rez(tmp,n-2);
g<<(1LL*tmp[0][2]*x%mod+1LL*tmp[1][2]*y%mod+1LL*tmp[2][2]*z%mod)%mod<<"\n";
}
return 0;
}