Cod sursa(job #3355677)

Utilizator victor_diaconu_1111Victor Diaconu victor_diaconu_1111 Data 24 mai 2026 17:50:12
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>

using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
#define cin fin
#define cout fout
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;
    cin>>T;
    while (T--)
    {
        cin>>X>>Y>>Z>>A>>B>>C>>n;
        cout<<putere(n-2)<<'\n';
    }
    return 0;
}