Cod sursa(job #1703192)

Utilizator LucianTLucian Trepteanu LucianT Data 16 mai 2016 15:46:12
Problema Iepuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
long long arr[4][4],sol[4][4];
long long n,a,b,c,x,y,z,t;
void mul(long long a[4][4],long long b[4][4])
{
    long long c[4][4];
    int i,j,k;
    for(i=1;i<=3;i++)
        for(j=1;j<=3;j++)
    {
        c[i][j]=0;
        for(k=1;k<=3;k++)
            c[i][j]=(c[i][j]+(a[i][k]%MOD)*(b[k][j]%MOD))%MOD;
    }
    for(i=1;i<=3;i++)
        for(j=1;j<=3;j++)
        a[i][j]=c[i][j]%MOD;
}
int main()
{
    ifstream f("iepuri.in");
    ofstream g("iepuri.out");
    f>>t;
    while(t--)
    {
        f>>x>>y>>z>>a>>b>>c>>n;
        n-=2;
        sol[1][1]=x;
        sol[1][2]=y;
        sol[1][3]=z;
        arr[1][1]=0;
        arr[1][2]=0;
        arr[1][3]=c;
        arr[2][1]=1;
        arr[2][2]=0;
        arr[2][3]=b;
        arr[3][1]=0;
        arr[3][2]=1;
        arr[3][3]=a;
        while(n)
        {
            if(n%2)
                mul(sol,arr);
            mul(arr,arr);
            n/=2;
        }
        g<<sol[1][3]%MOD<<'\n';
    }
    return 0;
}