Cod sursa(job #3351284)

Utilizator rosaaaRosa Elen S. rosaaa Data 18 aprilie 2026 14:14:02
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <fstream>

using namespace std;

ifstream cin("iepuri.in");
ofstream cout("iepuri.out");

using ll= long long;
const int mod= 666013;
ll baza[5][5], rez[5][5];

void exp_rap(int n){
	ll aux[5][5]= {0}, i, j, k;
	ll R;
	while(n > 0){
		if(n% 2== 0){
			n/= 2;
			for(i= 1;i <= 3;i++)
				for(j= 1;j <= 3;j++){
					R= 0;
					for(k= 1;k <= 3;k++)
						R= (R+ baza[i][k]* baza[k][j]* 1LL)% mod;
					aux[i][j]= R;
				}
			for(i= 1;i <= 3;i++)
				for(j= 1;j <= 3;j++)
					baza[i][j]= aux[i][j];
		}
		else{
			n--;
			for(i= 1;i <= 3;i++)
				for(j= 1;j <= 3;j++){
					R= 0;
					for(k= 1;k <= 3;k++)
						R= (R+ baza[i][k]* rez[k][j]* 1LL)% mod;
					aux[i][j]= R;
				}
			for(i= 1;i <= 3;i++)
				for(j= 1;j <= 3;j++)
					rez[i][j]= aux[i][j];
		}
	}
}

int main()
{
    int t, i, j;
    ll A, B, C, X, Y, Z, N;
    cin >> t;

    while(t--){
		cin >> X>> Y>> Z>> A>> B>> C>> N;
		baza[1][1]= 0; baza[1][2]= 1; baza[1][3]= 0;
		baza[2][1]= 0; baza[2][2]= 0; baza[2][3]= 1;
		baza[3][1]= C; baza[3][2]= B; baza[3][3]= A;
		rez[1][1]= rez[2][2]= rez[3][3]= 1;
		exp_rap(N- 2);

		ll afis= 0;
		afis= ((X* rez[3][1]* 1LL)% mod+ (Y* rez[3][2]* 1LL)% mod+ (Z* rez[3][3]* 1LL)% mod)% mod;
		cout << afis<< '\n';

		for(i= 1;i <= 3;i++)
			for(j= 1;j <= 3;j++)
				rez[i][j]= 0;
    }

    return 0;
}