Cod sursa(job #3349189)

Utilizator nverde1119Popa Narcis Constantin nverde1119 Data 25 martie 2026 23:53:32
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("iepuri.in");
ofstream fout("iepuri.out");
const int MOD = 666013;
long long I[3][3], D[3][3];
int N, X, Y, Z, A, B, C, T;
void inmultiremat(long long D[][3], long long C[][3])
{
	long long E[3][3];
	for(int i = 0; i < 3; i++)
	{
		for(int j = 0; j < 3; j++)
		{
			E[i][j] = 0;
			for(int k = 0; k < 3; k++)
				E[i][j] += D[i][k] * C[k][j];
		}
	}
	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++)
			D[i][j] = E[i][j] % MOD;
}
void putere(int n)
{
	while(n)
	{
		if(n % 2)
			inmultiremat(D, I);
		inmultiremat(I, I);
		n /= 2;
	}
}
void creare()
{
	for(int i = 0; i < 3; i++)
		for(int j = 0; j < 3; j++)
			D[i][j] = I[i][j] = 0;
	D[0][0] = Z;
	D[0][1] = Y;
	D[0][2] = X;
	I[0][0] = A;
	I[1][0] = B;
	I[2][0] = C;
	I[0][1] = I[1][2] = 1;
}

void citire()
{
	f >> T;
	while(T--)
	{
		f >> X >> Y >> Z >> A >> B >> C >> N;
		creare();
		putere(N - 2);
		fout << D[0][0] << '\n';
	}
}
int main()
{
	citire();
	return 0;
}