Cod sursa(job #3318056)

Utilizator Warrior.exeZgorcea Mihai-Alexandru Warrior.exe Data 26 octombrie 2025 19:35:20
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("iepuri.in");
ofstream fout("iepuri.out");

const int MOD = 666013;

int X,Y,Z,A,B,C;

void mul(int A[][3],int B[][3]){
    long long C[3][3];
    int i,j,k;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            C[i][j] = 0;
            for(k=0;k<3;k++){
                C[i][j] += (long long) A[i][k] *B[k][j];
            }
        }
    }
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            A[i][j] = C[i][j] % MOD;
        }
    }
}

int putere(int n){
    int M[3][3] =
    {
        {0, 0, C},
        {1, 0, B},
        {0, 1, A},
    };
    int V[3][3] =
    {
        {X, Y, Z},
        {0, 0, 0},
        {0, 0, 0},
    };
    while(n>0){
        if(n%2==0){
            mul(M,M);
            n/=2;
        }
        else{
            mul(V,M);
            n--;
        }
    }
    return V[0][2];
}



int main(){
    int T,N;
    fin>>T;
    while(T--){
        fin >> X >> Y >> Z
            >> A >> B >> C
            >> N;
        fout<<putere(N-2)<<'\n';
    }
    return 0;
}