Pagini recente » Cod sursa (job #191441) | Cod sursa (job #3241780) | Cod sursa (job #1366645) | Cod sursa (job #3243740) | Cod sursa (job #3347254)
#include <iostream>
#include <vector>
#include <fstream>
#define MOD 666013
using namespace std;
vector<vector<int>> mult(vector<vector<int>> &a, vector<vector<int>> &b)
{
vector<vector<int>> dp(a.size(), vector<int>(a[0].size(), 0));
for (int i = 0 ; i < a.size(); i++) {
for (int j = 0; j < a.size(); j++) {
for (int k = 0; k < a.size(); k++) {
dp[i][j] += a[i][k] * b[k][j];
dp[i][j] %= MOD;
}
}
}
return dp;
}
int main()
{
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int t, x, y, z, a, b, c, n;
fin >> t;
for (int w = 0; w < t ; w++) {
fin >> x >> y >> z >> a >> b >> c >> n;
vector<vector<int>> exp = {{0,0,c},{1,0,b},{0, 1, a}};
vector<vector<int>> res = {{1,0,0},{0,1,0},{0,0,1}};
n -= 2;
while(n > 0) {
if (n & 1) {
res = mult(res, exp);
}
n >>= 1;
exp = mult(exp, exp);
}
int q = 0;
q += x * res[0][2];
q %= MOD;
q += y * res[1][2];
q %= MOD;
q += z * res[2][2];
q %= MOD;
fout << q << "\n";
}
return 0;
}