Cod sursa(job #1917335)

Utilizator Bot32King Max Bot32 Data 9 martie 2017 11:59:55
Problema Iepuri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
#define mod 666013
int t,x,y,z,a,b,c,n;
long long aux[4][4],sol[4][4];

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

int solve(int n)
{
   /* for ( int i = 1; i<=3;i++ )
        for (int j = 1; j<=3;j++)
            sol[i][j] = 0; */
    sol[1][1] = z; sol[1][2] = y; sol[1][3] = x;
    while(n)
    {
        if(n%2)
        {
            n--;
            multiply(sol,aux);
        }
        n=n/2;
        multiply(aux,aux);
    }
    g<<sol[1][1] <<"\n";
}

int main()
{
    f>>t;
    for(;t--;)
    {
        f>>x>>y>>z>>a>>b>>c>>n;
        aux[1][1] = a; aux[2][1] = b; aux[3][1] = c;
        aux[1][2] = 1; aux[1][3] = 0; aux[2][3] = 1;
        aux[2][2] = aux[3][2] = aux[3][3] = 0;
        solve(n-2);
    }
    return 0;
}