Cod sursa(job #3269625)

Utilizator Mateixx1Trandafir matei Mateixx1 Data 20 ianuarie 2025 09:00:55
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const int MOD=666013;
int N,p,X,Y,Z,A,B,C,t;

void inmultire(int A[][3],int B[][3]) {
    long long C[3][3];
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            C[i][j]=0;
            for(int k=0; k<3; k++) {
                C[i][j]+=(long long)A[i][k]*B[k][j];
            }
        }
    }
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            A[i][j]=C[i][j]%MOD;
        }
    }
}
void putere(int N) {
    int I[3][3]= {
        {Z,Y,X},
        {0,0,0},
        {0,0,0}
    };
    int V[3][3]= {
        {A,1,0},
        {B,0,1},
        {C,0,0}
    };
    while(N) {
        if(N&1) {
            inmultire(I,V);
        }
        inmultire(V,V);
        N/=2;
    }
    g<<I[0][0]<<"\n";
}


int main() {
    f>>t;
    while(t--) {
        f>>X>>Y>>Z>>A>>B>>C>>N;
        putere(N-2);
    }
    f.close();
    g.close();
    return 0;
}