Cod sursa(job #2235397)

Utilizator andrei13Paval Andrei andrei13 Data 26 august 2018 17:01:52
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("iepuri.in");
ofstream g("iepuri.out");

int x,y,z,a,b,c,n,t;

void inm(int tbi1[3][3],int tbi2[3][3])
{
    int tbi3[3][3];
    for(int i=0;i<=2;++i)
        for(int j=0;j<=2;++j)
          {
             tbi3[i][j]=0;
             for(int k=0;k<=2;++k)
               tbi3[i][j]=(tbi3[i][j]+tbi1[i][k]*tbi2[k][j])%666013;
          }
    for(int i=0;i<=2;++i)
        for(int j=0;j<=2;++j)
          tbi1[i][j]=tbi3[i][j];
}
void rez(int mat[3][3],int p)
{
    int aux[3][3];
    for(int i=0;i<=2;++i)
        for(int j=0;j<=1;++j)
           aux[i][j]=0;
    aux[1][0]=aux[2][1]=1;
    aux[0][2]=c;
    aux[1][2]=b;
    aux[2][2]=a;
    for(int i=0;i<=2;++i)
        for(int j=0;j<=2;++j)
           mat[i][j]=0;
    mat[0][0]=mat[1][1]=mat[2][2]=1;


    while(p)
    {
        if(p%2)
            inm(mat,aux);
        inm(aux,aux);
        p/=2;
    }
}
int main()
{
    f>>t;
    while(t--)
    {
        f>>x>>y>>z>>a>>b>>c>>n;
        int aux[3][3];
        rez(aux,n-2);
        g<<(aux[0][2]*x+aux[1][2]*y+aux[2][2]*z)%666013<<"\n";
    }
    return 0;
}