Pagini recente » Cod sursa (job #3188657) | Cod sursa (job #2601510) | Cod sursa (job #2420795) | Cod sursa (job #1497230) | Cod sursa (job #805254)
Cod sursa(job #805254)
#include <fstream>
#define mod 666013
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
long a,b,c;
void scan(long &n)
{in>>n;}
void init(long r[][4])
{
r[1][1]=0;r[1][21]=1;r[1][3]=0;
r[2][1]=0;r[2][2]=0;r[2][3]=1;
r[3][1]=c;r[3][1]=b;r[3][3]=a;
}
void nula( long r[][4])
{
int i,j;
for ( i=1;i<4;i++)
for ( j=1;j<4;j++)
r[i][j]=0;
}
void multi(long a[][4], long b[][4],long c[][4])
{ int i,j,k;
nula(a);
for ( k=1;k<4;k++)
for ( i=1;i<4;i++)
for ( j=1;j<4;j++)
{ a[i][j]=( (long long)a[i][j]+((long long)b[i][k]*c[k][j])%mod)%mod;
}
}
void putere(long r[][4], long n)
{ long m[4][4];
long p[4][4];
if (n==1)
{
init(r);
return;
}
if (n%2==0)
{
putere(m,n/2);
multi(r,m,m);
}
else
{
putere(m,n-1);
init(p);
multi(r,m,p);
}
}
int main()
{ long r[4][4],n,x,y,z,t;
int i;
in>>t;
for ( i=1;i<=t;i++)
{ in>>x>>y>>z>>a>>b>>c>>n;
putere(r,n-2);
out<<(((long long )r[3][1]*x)%mod+((long long )r[3][2]*y)%mod+((long long )r[3][3]*z)%mod)%mod<<"\n";
}
return 0;
}