Pagini recente » Cod sursa (job #2352171) | Cod sursa (job #3190631) | Cod sursa (job #3143543) | Cod sursa (job #1780425) | Cod sursa (job #2036026)
#include <fstream>
#include <cstring>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
long long A[6][6], B[6][6];
long long x,n,i,j,mod=666013,k,t,y,z,a,b,c ;
void matr (long long a[][6], long long b[][6])
{
int i,j,k;
int rez[5][5];
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
rez[i][j]=0;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
for(k=1; k<=3; k++)
rez[i][j]=((rez[i][j])%mod+(a[i][k]*b[k][j])%mod)%mod;
for(int i=1;i<=4;++i)
for(j=1;j<=4;++j)
a[i][j]=rez[i][j];
}
int main()
{
cin>>t;
while(t--)
{
cin>>x>>y>>z>>a>>b>>c>>n;
memset(A,0,sizeof(A));
A[2][1]=A[3][2]=1;
A[3][3]=a;
A[2][3]=b;
A[1][3]=c;
for(int i=1;i<=3;++i)
for(int j=1;j<=3;++j)
B[i][j]=A[i][j];
//cout<<(A[1][2]+A[2][2])%mod<<"\n";
for(int i=n-1;i>0;)
{
if(i%2==1) matr(A,B), --i;
else matr(B,B), i/=2;
}
cout<<(x*A[1][1]+y*A[2][1]+z*A[3][1])%mod<<'\n';
}
return 0;
}