Cod sursa(job #2608211)

Utilizator mariamirabella2Bucur-Sabau Maria-Mirabela mariamirabella2 Data 30 aprilie 2020 19:48:35
Problema Iepuri Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>

using namespace std;

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

int t,x,y,z,a,b,c,n,f[4][4],mat[4][4];
const int mod=666013;

void prod(int a[4][4],int b[4][4]){
    int c[4][4];
    for(int i=1;i<=3;i++){
        for(int j=1;j<=3;j++){
            c[i][j]=0;
            for(int k=1;k<=3;k++){
                c[i][j]+=((a[i][k]%mod)*(b[k][j]%mod))%mod;
                c[i][j]%=mod;
            }
        }
    }
    for(int i=1;i<=3;i++){
        for(int j=1;j<=n;j++){
            a[i][j]=c[i][j];
        }
    }
}
void pow(int n){
    while(n!=0){
        if(n%2!=0){
            prod(mat,f);
        }
        prod(f,f);
        n/=2;
    }

}


int main()
{
    cin>>t;
    while(t--){
        cin>>x>>y>>z>>a>>b>>c>>n;
        for(int i=1;i<=3;i++){
            for(int j=1;j<=3;j++){
                f[i][j]=mat[i][j]=0;
            }
        }
        f[1][3]=c;
        f[2][1]=1;
        f[2][3]=b;
        f[3][2]=1;
        f[3][3]=a;
        mat[1][1]=mat[2][2]=mat[3][3]=1;
        pow(n-2);
        cout<<(x*mat[1][3]%mod+y*mat[2][3]%mod+z*mat[3][3]%mod)%mod<<'\n';
    }
    return 0;
}