Cod sursa(job #1519581)

Utilizator DjokValeriu Motroi Djok Data 7 noiembrie 2015 15:53:25
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<bits/stdc++.h>
using namespace std;

const int MOD=666013;

int i,j,k,n,t;
long long a[5][5],b[5][5],x,y,z,aux[5][5];

void Prod(long long a[5][5],long long b[5][5]) {
    memset(aux,0,sizeof(aux));

    for(int i=1;i<=3;++i)
     for(int j=1;j<=3;++j)
      for(int k=1;k<=3;++k)
      aux[i][j]+=a[i][k]*b[k][j],aux[i][j]%=MOD;

    memcpy(a,aux,sizeof(aux));
}

int main()
{
  ifstream cin("iepuri.in");
  ofstream cout("iepuri.out");

  ios_base::sync_with_stdio(0); cin.tie(0);

  for(cin>>t;t;--t)
  {
    memset(a,0,sizeof(a)); a[2][1]=a[3][2]=1;

    cin>>a[3][3]>>a[2][3]>>a[1][3]>>x>>y>>z>>n;

    memcpy(b,a,sizeof(a));

    for(n-=3;n;)
    if(n&1) Prod(a,b),--n;
    else Prod(b,b),n/=2;

    cout<<(x*a[1][3]+y*a[2][3]+z*a[3][3])%MOD<<'\n';
  }

 return 0;
}