Pagini recente » Cod sursa (job #2364478) | Cod sursa (job #1609605) | Cod sursa (job #1048798) | Cod sursa (job #2477162) | Cod sursa (job #569591)
Cod sursa(job #569591)
# include <fstream>
# define mod 666013
using namespace std;
ifstream f ("iepuri.in");
ofstream g ("iepuri.out");
long long int x0,x1,x2,a,b,c,n,t;
struct matrice
{
long long int m[4][4];
}q,bb,w;
void initm ()
{
int i,j;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
q.m[i][j]=0;
q.m[1][1]=a;
q.m[2][1]=b;
q.m[3][1]=c;
q.m[1][2]=1;
q.m[2][3]=1;
}
matrice prod (matrice a,matrice b)
{
long long int i,j,x,k;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
x=0;
for (k=1;k<=3;k++)
{
x+=a.m[i][k]*b.m[k][j];
x=x%mod;
}
w.m[i][j]=x%mod;
}
return w;
}
matrice putere (long long int p,matrice a)
{
if (p==1)
return a;
else
if (p%2==1)
return prod (a,putere(p-1,a));
else
{
bb=putere (p/2,a);
return prod (bb,bb);
}
}
long long int nr (long long int n)
{
long long int x=0;
matrice mm=putere (n-2,q);
x=mm.m[1][1]*x2+mm.m[2][1]*x1+mm.m[3][1]*x0;
x=x%mod;
return x;
}
int main ()
{
int i;
f>>t;
for (i=1;i<=t;i++)
{
f>>x0>>x1>>x2>>a>>b>>c>>n;
initm();
g<<nr (n)<<"\n";
}
return 0;
}