Pagini recente » Cod sursa (job #3155669) | Cod sursa (job #2128369) | Cod sursa (job #2827446) | Cod sursa (job #94422) | Cod sursa (job #1529139)
#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=a;
z.d=1;z.e=0;z.f=b;
z.g=0;z.h=1;z.i=c;
p1=n-2;
z=putere(z,p1);
x3=x*z.c+y*z.f+z1*z.i;
x3=x3%666013;
g<<x3;
if(j<nrteste) g<<'\n';
}
}