Cod sursa(job #2066244)

Utilizator marcudanfDaniel Marcu marcudanf Data 14 noiembrie 2017 20:16:33
Problema Iepuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
#define mod 666013

using namespace std;

ifstream fin("iepuri.in");
ofstream fout("iepuri.out");

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

void multiply(int a[3][3],int b[3][3]){
        long long c[3][3]={0};
        for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
        for(int k=0;k<3;k++){
                c[i][j]+=1LL*a[i][k]*b[k][j];
                c[i][j]%=mod;
        }
        for(int i=0;i<3;i++)
        for(int j=0;j<3;j++)
        a[i][j]=c[i][j];
}

int main(){
        fin>>t;
        for(int i=0;i<t;i++){
                fin>>x>>y>>z>>A>>b>>c>>n;
                int a[3][3]={0},sol[3][3]={0};
                a[1][0]=a[2][1]=1;
                a[0][2]=c;
                a[1][2]=b;
                a[2][2]=A;
                sol[0][0]=x;
                sol[0][1]=y;
                sol[0][2]=z;
                while(n>0){
                        if(n%2)
                                multiply(sol,a);
                        multiply(a,a);
                        n/=2;
                }
                fout<<sol[0][0]%mod<<'\n';
        }
}