Cod sursa(job #2255270)

Utilizator unknownpersonBidasca Carina Georgiana unknownperson Data 6 octombrie 2018 17:31:47
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int x,y,z,a,b,c,n,t;

void inm(int init[3][3],int A[3][3])
{
    int rez[3][3];
    for(int i=0; i<=2; ++i)
        for(int j=0; j<=2; ++j)
        {
            rez[i][j]=0;
            for(int k=0; k<=2; ++k)
                rez[i][j]=(rez[i][j]%666013+init[i][k]*A[k][j]%666013)%666013;
        }
    for(int i=0; i<=2; ++i)
        for(int j=0; j<=2; ++j)
            init[i][j]=rez[i][j];
}
void rezultat(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];
        rezultat(aux,n-2);
        g<<(aux[0][2]*x%666013+aux[1][2]*y%666013+aux[2][2]*z%666013)%666013<<"\n";
    }

    return 0;
}