Pagini recente » Cod sursa (job #274544) | Cod sursa (job #2309058) | Cod sursa (job #1728478) | Cod sursa (job #1292534) | Cod sursa (job #1653031)
#include <iostream>
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int a, b, c, x, y, z, t;
long long n;
int p[3][3];
void inmultire(int a[3][3], int b[3][3])
{
int c[3][3];
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
{
c[i][j]=0;
for(int q=0;q<=2;q++)
c[i][j]+=a[i][q]*b[q][j]%MOD;
}
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
a[i][j]=c[i][j]%MOD;
}
void pow(int n)
{
if(n%2==0)
{
pow(n/2);
inmultire(p,p);
}
else if(n!=1)
{
int c[3][3];
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
c[i][j]=p[i][j];
pow(n-1);
inmultire(p,c);
}
}
void citire()
{
f>>t;
for(;t;t--)
{
f>>x>>y>>z>>a>>b>>c>>n; n++;
if(n==1) g<<x<<"\n";
if(n==2) g<<y<<"\n";
if(n==3) g<<z<<"\n";
if(n>3)
{
p[0][0]=0; p[0][1]=0; p[0][2]=c;
p[1][0]=1; p[1][1]=0; p[1][2]=b;
p[2][0]=0; p[2][1]=1; p[2][2]=a;
pow(n-3);
/*for(int i=0;i<=2;i++)
{
for(int j=0;j<=2;j++)
cout<<p[i][j]<<" ";
cout<<"\n";
}
cout<<"\n";*/
g<<((x*p[0][2])%MOD+(y*p[1][2])%MOD+(z*p[2][2])%MOD)%MOD<<"\n";
}
}
}
int main()
{
citire();
return 0;
}