Cod sursa(job #3337701)

Utilizator Petre_TimoteiPetre Timotei Daniel Petre_Timotei Data 29 ianuarie 2026 16:08:18
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.67 kb
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
const int MOD=666013;
int copie[4][4],baza[4][4],rez[4][4];
void r(int exp, int baza[4][4], int rez[4][4])
{  for( int i=1;i<=3;i++)
    for(int j=1;j<=3;j++)
        rez[i][j]=0;
    for(int i=1;i<=3;i++)
        rez[i][i]=1;
    while(exp!=0)
    {  if(exp%2==0)
           {
               exp/=2;
                 for(int i=1;i<=3;i++)
                    for(int j=1;j<=3;j++)
                 {
                     copie[i][j]=0;
                     for(int k=1;k<=3;k++)
                        copie[i][j]+=(1LL*baza[i][k]*baza[k][j])%MOD;
                 }
                 for(int i=1;i<=3;i++)
                    for(int j=1;j<=3;j++)
                        baza[i][j]=copie[i][j];
           }
           else
           {
               exp--;
               for(int i=1;i<=3;i++)
                for(int j=1;j<=3;j++)
               {
                   copie[i][j]=0;
                   for(int k=1;k<=3;k++)
                    copie[i][j]+=(1LL*rez[i][k]*baza[k][j])%MOD;
               }
               for(int i=1;i<=3;i++)
                for(int j=1;j<=3;j++)
                rez[i][j]=copie[i][j];
           }


    }




}
int main()
{ int t,a,b,c,x,y,z,n;
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        cin>>x>>y>>z>>a>>b>>c>>n;
        n-=2;
        baza[1][1]=0; baza[1][2]=1;baza[1][3]=0;
        baza[2][1]=0;baza[2][2]=0;baza[2][3]=1;
        baza[3][1]=c;baza[3][2]=b;baza[3][3]=a;
        r(n,baza,rez);
        cout<<(1LL*rez[3][1]*x+1LL*rez[3][2]*y+1LL*rez[3][3]*z)%MOD<<'\n';
    }

    return 0;
}