Cod sursa(job #3349422)

Utilizator nverde1119Popa Narcis Constantin nverde1119 Data 29 martie 2026 09:03:38
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>

using namespace std;
ifstream f("iepuri.in");
ofstream g("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]+=1LL*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)
            mul(V,M);
        mul(M,M);
        n/=2;
    }
    return V[0][2];
}
int main()
{
    int T,N;
    f>>T;
    while(T--)
    {
        f>>X>>Y>>Z>>A>>B>>C>>N;
        g<<putere(N-2)<<'\n';
    }
    f.close();
    g.close();
    return 0;
}