Pagini recente » Cod sursa (job #3228555) | Cod sursa (job #779102) | Cod sursa (job #1095362) | Cod sursa (job #1822801) | Cod sursa (job #2332905)
#include<fstream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long a[5][5],b[5][5],c[5][5],sol[5][5];
void inmultire_matrice(long long a[5][5],long long b[5][5])
{
long long i,j,k;
long long s;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
s=0;
for(k=1;k<=3;k++)
s+=a[i][k]*b[k][j];
c[i][j]=s%MOD;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=c[i][j];
}
void pow_log(long long p)
{
long long i,j;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
sol[i][j]=b[i][j];
while(p!=0)
{
if(p%2==1)
inmultire_matrice(sol,b);
inmultire_matrice(b,b);
p/=2;
}
}
int main()
{
long long n,t,l,x,y,z,A,B,C,i,j;
f>>t;
for(l=1;l<=t;l++)
{
f>>x>>y>>z>>A>>B>>C>>n;
if(n==0)
g<<0;
else
{
a[1][1]=x;
a[1][2]=y;
a[1][3]=z;
b[2][1]=1;
b[3][2]=1;
b[1][3]=C;
b[2][3]=B;
b[3][3]=A;
pow_log(n-3);
inmultire_matrice(a,sol);
g<<a[1][3]<<'\n';
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
a[i][j]=b[i][j]=c[i][j]=sol[i][j]=0;
}
return 0;
}