Cod sursa(job #1877233)

Utilizator KronSabau Valeriu Kron Data 13 februarie 2017 09:48:29
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include <iostream>
#include <fstream>
#include <vector>
#define K 4
#define MOD 666013;
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long  n,x,y,z,a1,b1,c1,t;
vector<vector<long long> > A,B,AUX;
vector<vector<long long> > inmultire(vector<vector<long long> >  a,vector<vector<long long> > b)
{
    vector<vector<long long> >  c;
    for(int i=1;i<K;i++)
        for(int j=1;j<K;j++)
            for(int k=1;k<K;k++)
            {
                c[i][j]=(c[i][j]+a[i][k]*b[k][j])%MOD;
            }

    return c;
}
int main()
{
    f>>t;
    for(int i=0;i<t;i++)
    {
        f >> x >> y >> z >> a1 >> b1 >> c1>> n;
        A[1][1]=0;
        A[1][1]=0;
        A[1][2]=0;
        A[1][3]=z;
        A[2][1]=1;
        A[2][2]=0;
        A[2][3]=y;
        A[3][1]=0;
        A[3][2]=1;
        A[3][3]=x;
        B[1][1]=a1;
        B[1][2]=b1;
        B[1][3]=c1;
        while(n)
        {

            if(n%2)
            {
                B=inmultire(A,B);
            }
            A=inmultire(A,A);
            n=n/2;

        }
        g << B[1][1];
    }

    return 0;
}