Pagini recente » Borderou de evaluare (job #1688891) | Cod sursa (job #303047) | Cod sursa (job #2406629) | Cod sursa (job #2357252) | Cod sursa (job #2142960)
#include <fstream>
#include <iostream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long t,x,y,z,a,b,c,n,rez[4][4];
void inm_matr(long long a[4][4],long long b[4][4])
{
int i=0,j=0;
long long aux[4][4];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{aux[i][j]=0;
for(int q=1;q<=3;q++)
aux[i][j]+=a[i][q]*b[q][j]%MOD;}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=aux[i][j];
}
int main()
{
f>>t;
for(int q=1;q<=t;q++)
{
f>>x>>y>>z>>a>>b>>c>>n;
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
if(i==j)
rez[i][j]=1;
else rez[i][j]=0;
long long inm[4][4]={0,0,0,0,0,a,1,0,0,b,0,1,0,c,0,0};
int p=n-2;
while(p>0)
{
if(p%2==1)
inm_matr(rez,inm);
p/=2;
if(p>0)
inm_matr(inm,inm);
}
g<<(z*rez[1][1]%MOD+y*rez[2][1]%MOD+x*rez[3][1]%MOD)%MOD<<'\n';
}
return 0;
}