Cod sursa(job #3308561)

Utilizator horatiu.avramAvram Popa Cristian Horatiu horatiu.avram Data 26 august 2025 10:43:48
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include<bits/stdc++.h>
using namespace std;
const int MOD = 666013;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
vector<vector<int>>p,q,r;
int x,y,z,a,b,c,n,t;
inline void mul_mat(vector<vector<int>> &a,vector<vector<int>> &b,vector<vector<int>> &c) {
    for(int i=0; i<3; i++) {
        for(int j=0; j<3; j++) {
            for(int k=0; k<3; k++) {
                c[i][j]=(c[i][j]+1LL*a[i][k]*b[k][j])%MOD;
            }
        }
    }
}
void exp_mat() {
    q= {{1,0,0},{0,1,0},{0,0,1}};
    p= {{0,0,c},{1,0,b},{0,1,a}};
    r=vector<vector<int>>(3,vector<int>(3,0));
    n-=2;
    while(n) {
        if(n&1) {
            r=vector<vector<int>>(3,vector<int>(3,0));
            mul_mat(q,p,r);
            q=r;
        }
        r=vector<vector<int>>(3,vector<int>(3,0));
        mul_mat(p,p,r);
        p=r;
        n>>=1;
    }
    int val=(1LL*x*q[0][2]+1LL*y*q[1][2]+1LL*z*q[2][2])%MOD;
    fout<<val<<"\n";
}
int main() {
    fin>>t;
    while(t--) {
        fin>>x>>y>>z>>a>>b>>c>>n;
        exp_mat();
    }
    return 0;
}