Cod sursa(job #3309371)

Utilizator vlad7654vladimir manescu vlad7654 Data 3 septembrie 2025 21:27:50
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
const int MOD=666013;
int ans[3][3], a[3][3];
void multiplication(int a[3][3], int b[3][3]){
    int c[3][3]={};
    for(int i=0;i<=2;i++){
        for(int j=0;j<=2;j++){
            for(int k=0;k<=2;k++){
                c[i][j]=(c[i][j]+(1LL*a[i][k]*b[k][j])%MOD)%MOD;
            }
        }
    }
    for(int i=0;i<=2;i++){
        for(int j=0;j<=2;j++){
            a[i][j]=c[i][j];
        }
    }

}
void power(int putere){
    while(putere){
        if(putere%2==1){
            multiplication(ans,a);
        }
        multiplication(a,a);
        putere/=2;
    }
}
void solve(){
    int x, y, z, A, B, C, n;
    fin>>x>>y>>z>>A>>B>>C>>n;
    a[0][0]=a[0][1]=a[1][1]=a[2][0]=0;
    a[1][0]=a[2][1]=1;
    a[0][2]=C;
    a[1][2]=B;
    a[2][2]=A;
    ans[0][0]=x;
    ans[0][1]=y;
    ans[0][2]=z;
    ans[1][0]=ans[1][1]=ans[1][2]=ans[2][0]=ans[2][1]=ans[2][2]=0;
    power(n);
    fout<<ans[0][0]<<'\n';

}
int main(){
    int t;
    fin>>t;
    while(t--){
        solve();
    }
}