Pagini recente » Cod sursa (job #3036943) | Cod sursa (job #3224564) | Cod sursa (job #296812) | Cod sursa (job #1271464) | Cod sursa (job #2240743)
#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, k, i, j;
void multiply_matrix(ll A[KMAX][KMAX], ll B[KMAX][KMAX], ll C[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];
*/
ll tmp[KMAX][KMAX];
for (ll i = 0; i < KMAX; ++i) {
for (ll j = 0; j < KMAX; ++j) {
long long sum = 0;
for (k = 0; k < KMAX; ++k) {
sum = (1LL * sum % mod + 1LL * A[i][k] * B[k][j] % mod) % mod;
}
tmp[i][j] = sum;
}
}
for(i = 0; i < KMAX; i++) {
for(j = 0; j < KMAX; j++) {
C[i][j] = tmp[i][j];
}
}
}
void rez(ll tmp[3][3],ll p, ll R[3][3])
{
ll C[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, C);
p /= 2;
} else {
multiply_matrix(tmp, C, tmp);
--p;
}
}
multiply_matrix(C, tmp, R);
/* for(i = 0; i < KMAX; i++) {
for(j = 0; j < KMAX; j++) {
cout << R[i][j] << " ";
}
cout << endl;
}*/
g<<(1LL*R[0][2]*x%mod+1LL*R[1][2]*y%mod+1LL*R[2][2]*z%mod)%mod<<"\n";
}
int main()
{
f>>t;
while(t--)
{
f>>x>>y>>z>>a>>b>>c>>n;
ll tmp[3][3], R[3][3];
rez(tmp,n-2, R);
// g<<(1LL*R[0][2]*x%mod+1LL*R[1][2]*y%mod+1LL*R[2][2]*z%mod)%mod<<"\n";
}
return 0;
}