Cod sursa(job #1528619)

Utilizator GeanaVladGeana Vlad GeanaVlad Data 19 noiembrie 2015 21:17:52
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long x,y,z1,a,b,c,n,p1,x3,j,nrteste;
typedef struct matrice
{
    long long a,b,c,d,e,f,g,h,i;
};matrice z;
matrice mod(matrice a)
{
    a.a%=666013;a.b%=666013;a.c%=666013;
    a.d%=666013;a.e%=666013;a.f%=666013;
    a.g%=666013;a.h%=666013;a.i%=666013;
    return a;
}
matrice inmultire(matrice a,matrice b)
{
    matrice z;
    z.a=a.a*b.a+a.b*b.d+a.c*b.g; z.b=a.a*b.b+a.b*b.e+a.c*b.h; z.c=a.a*b.c+a.b*b.f+a.c*b.i;
    z.d=a.d*b.a+a.e*b.d*a.f*b.g; z.e=a.d*b.b+a.e*b.e+a.f*b.h; z.f=a.d*b.c+a.e*b.f+a.f*b.i;
    z.g=a.g*b.a+a.h*b.d+a.i*b.g; z.h=a.g*b.b+a.h*b.e+a.i*b.h; z.i=a.g*b.c+a.h*b.f+a.i*b.i;

    return mod(z);
}
matrice putere(matrice n,long long p)
{
    if(p==1) return n;
    if(p%2==0) return mod(putere(inmultire(n,n),p/2));
    return mod(inmultire(n,putere(n,p-1)));
}
int main()
{
    f>>nrteste;
    for(j=1;j<=nrteste;j++)
    {
        f>>x>>y>>z1>>a>>b>>c>>n;
        z.a=0;z.b=0;z.c=z1;
        z.d=1;z.e=0;z.f=y;
        z.g=0;z.h=1;z.i=x;
        p1=n-2;
        z=putere(z,p1);
        x3=a*z.c+b*z.f+c*z.i;
        g<<x3;
        if(j<nrteste) g<<'\n';

    }


}