Cod sursa(job #2142950)

Utilizator robertrRotaru Stefan Robert robertr Data 25 februarie 2018 13:55:22
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <fstream>
#include <iostream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int t,x,y,z,a,b,c,n,rez[4][4];
void inm_matr(int a[4][4],int b[4][4])
{
    int i=0,j=0;
    int aux[4][4];
    for(i=1;i<=3;i++)
        for(j=1;j<=3;j++)
            {aux[i][j]=0;
            for(int q=1;q<=3;q++)
                aux[i][j]+=a[i][q]*b[q][j]%MOD;}
    for(i=1;i<=3;i++)
        for(j=1;j<=3;j++)
            a[i][j]=aux[i][j];
}
int main()
{
    f>>t;
    for(int q=1;q<=t;q++)
    {
        f>>x>>y>>z>>a>>b>>c>>n;
        for(int i=1;i<=3;i++)
            for(int j=1;j<=3;j++)
                if(i==j)
                   rez[i][j]=1;
                else rez[i][j]=0;
        int inm[4][4]={0,0,0,0,0,a,1,0,0,b,0,1,0,c,0,0};
        int p=n-2;
        while(p>0)
        {
            if(p%2==1)
                inm_matr(rez,inm);
            p/=2;
            if(p>0)
               inm_matr(inm,inm);
        }
        g<<(z*rez[1][1]%MOD+y*rez[2][1]%MOD+x*rez[3][1]%MOD)%MOD<<'\n';
    }
    return 0;
}