Pagini recente » Cod sursa (job #2447381) | Cod sursa (job #2691985) | Cod sursa (job #3128962) | Cod sursa (job #528200) | Cod sursa (job #3158139)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
const int mod = 666013;
long long A, B, C, X, Y, Z, N;
vector<vector<int>> inmult(vector<vector<int>> m, vector<vector<int>> n)
{
vector<vector<int>> aux = {{0,0,0},{0,0,0},{0,0,0}};
aux[0][0] = (m[0][0] * n[0][0] + m[0][1] * n[1][0] + m[0][2] * n[2][0]) % mod;
aux[0][1] = (m[0][0] * n[0][1] + m[0][1] * n[1][1] + m[0][2] * n[2][1]) % mod;
aux[0][2] = (m[0][0] * n[0][2] + m[0][1] * n[1][2] + m[0][2] * n[2][2]) % mod;
aux[1][0] = (m[1][0] * n[0][0] + m[1][1] * n[1][0] + m[1][2] * n[2][0]) % mod;
aux[1][1] = (m[1][0] * n[0][1] + m[1][1] * n[1][1] + m[1][2] * n[2][1]) % mod;
aux[1][2] = (m[1][0] * n[0][2] + m[1][1] * n[1][2] + m[1][2] * n[2][2]) % mod;
aux[2][0] = (m[2][0] * n[0][0] + m[2][1] * n[1][0] + m[2][2] * n[2][0]) % mod;
aux[2][1] = (m[2][0] * n[0][1] + m[2][1] * n[1][1] + m[2][2] * n[2][1]) % mod;
aux[2][2] = (m[2][0] * n[0][2] + m[2][1] * n[1][2] + m[2][2] * n[2][2]) % mod;
return aux;
}
vector<vector<int>> Putere(vector<vector<int>> m , int n)
{
if(n == 1)
return m;
if(n % 2 == 1 && n != 1)
return inmult(m, Putere(m, n-1));
vector<vector<int>> P = Putere(m , n / 2);
return inmult(P, P);
}
int main()
{
int t;
cin >> t;
for(int i = 0; i<t; i++)
{
cin >> X >> Y >> Z >> A >> B >> C >> N;
vector<vector<int>> mat = {{0, 1, 0}, {0, 0, 1}, {C, B, A}};
mat = Putere(mat, N);
int a = mat[0][0] * X + mat[0][1] * Y + mat[0][2] * Z;
cout << a << '\n';
}
}