Pagini recente » Cod sursa (job #2828821) | Cod sursa (job #2167508) | Cod sursa (job #1467486) | Cod sursa (job #1655633) | Cod sursa (job #1480680)
#include <cstdio>
#include <cstdlib>
#include <climits>
#include <map>
#include <iostream>
#define mod 666013
long long cit() {
long long ans = 0;
char c = getchar();
bool neg = false;
while (c < '0' || c > '9') {
if (c == '-') {
c = getchar();
neg = true;
break;
}
c = getchar();
}
while (c >= '0' && c <= '9') {
ans = (ans << 3) + (ans << 1) + (c - '0');
c = getchar();
}
return (neg) ? -ans : ans;
}
void afis(long long n, char d) {
int l = 0;
char c[20];
if (n == 0) {
putchar('0');
}
if (n < 0) {
putchar('-');
n = -n;
}
while (n > 0) {
c[l++] = n % 10 + '0';
n /= 10;
}
for (int i = l - 1; i >= 0; i--) {
putchar(c[i]);
}
putchar(d);
}
using namespace std;
class matrice {
public:
long long v[3][3];
matrice() {
v[1][0] = v[2][0] = v[0][1] = v[2][1] = v[0][2] = v[1][2] = 0;
v[0][0] = v[1][1] = v[2][2] = 1;
}
matrice(long long a, long long b, long long c) {
v[1][1] = v[1][2] = v[2][0] = v[2][2] = 0;
v[1][0] = v[2][1] = 1;
v[0][0] = a;
v[0][1] = b;
v[0][2] = c;
}
friend matrice operator * (const matrice a, const matrice b) {
matrice ans;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
ans.v[i][j] = 0;
for (int k = 0; k < 3; k++) {
ans.v[i][j] += a.v[i][k] * b.v[k][j];
}
ans.v[i][j] %= mod;
}
}
return ans;
}
};
int main() {
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
int t = cit();
for (int test = 0; test < t; test++) {
long long x = cit(), y = cit(), z = cit(), a = cit(), b = cit(), c = cit(), n = cit();
matrice ans, m(a, b, c);
n -= 2;
while (n > 0) {
if (n % 2 == 1) {
ans = ans * m;
}
m = m * m;
n >>= 1;
}
afis(ans.v[0][0] * z + ans.v[0][1] * y + ans.v[0][2] * x, '\n');
}
return 0;
}