Pagini recente » Cod sursa (job #539495) | Cod sursa (job #746687) | Cod sursa (job #1246409) | Cod sursa (job #2218779) | Cod sursa (job #3358475)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
const int MOD = 666013;
vector <vector <long long>> multiply (vector <vector <long long>> a, vector <vector <long long>> b) {
int n = a.size();
vector <vector <long long>> c(n, vector <long long> (n, 0));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
int sum = 0;
for (int k = 0; k < n; ++k)
sum = (sum + (a[i][k] * b[k][j]) % MOD) % MOD;
c[i][j] = sum;
}
}
return c;
}
vector <vector <long long>> pow (vector <vector <long long>> a, int e) {
int n = a.size();
vector <vector <long long>> p(n, vector<long long>(n, 0));
for (int i = 0; i < n; ++i)
p[i][i] = 1;
while (e) {
if (e % 2 == 1)
p = multiply(p, a);
a = multiply(a, a);
e = e / 2;
}
return p;
}
int main() {
int t, a, b, c, x, y, z, n;
in >> t;
while (t--) {
in >> x >> y >> z >> a >> b >> c >> n;
vector <vector <long long>> mat(3, vector<long long>(3, 0));
mat[0][0] = a;
mat[0][1] = b;
mat[0][2] = c;
mat[1][0] = 1;
mat[2][1] = 1;
vector <vector <long long>> rez;
rez = pow(mat, n - 2);
int sum = ((rez[0][0] * z) % MOD + (rez[0][1] * y) % MOD + (rez[0][2] * x) % MOD) % MOD;
out << sum << '\n';
}
return 0;
}