Cod sursa(job #3123927)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 26 aprilie 2023 08:22:06
Problema Iepuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
#define mod 666013
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
void copie(long long a[3][3],long long b[3][3])
{
    int i,j;
    for(i=0;i<=2;i++)
        for(j=0;j<=2;j++)
        a[i][j]=b[i][j];
}
void inmultire(long long a[3][3],long long b[3][3],long long c[3][3])
{
    int i,j,k;
    for(i=0;i<=2;i++)
    {
        for(j=0;j<=2;j++)
        {
            c[i][j]=0;
            for(k=0;k<=2;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j],c[i][j]%=mod;
        }
    }
}
long long n,x,y,z,a1,b1,c1,t;
int main()
{
    cin>>t;
    for(int i=1;i<=t;i++)
    {
        cin>>x>>y>>z>>a1>>b1>>c1>>n;
        n=n-2;
        long long p[3][3]={ {1,0,0},{0,1,0},{0,0,1}};
        long long a[3][3]={{a1,b1,c1},{1,0,0},{0,1,0}};
        long long b[3][3];
        while(n!=0)
        {
            if(n%2==1)
            {
                inmultire(p,a,b);
                copie(p,b);
            }
            inmultire(a,a,b);
            copie(a,b);
            n=n/2;
        }
        cout<<(z*p[0][0]+y*p[0][1]+x*p[0][2])%mod<<'\n';

    }
    return 0;
}