Pagini recente » Cod sursa (job #3329216) | Cod sursa (job #3321849) | Cod sursa (job #461960) | Cod sursa (job #2765443) | Cod sursa (job #3351290)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
long long I[4][4],rez[4][4];
void ridic(long long baza[4][4], int exp)
{
int aux[4][4],i,j,k,s;
while(exp!=0)
if(exp%2==0)
{
exp/=2;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
s=0;
for(k=1;k<=3;k++)
s+=(1LL*baza[i][k]*baza[k][j])%666013;
aux[i][j]=s;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
baza[i][j]=aux[i][j];
}
else
{
exp--;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
s=0;
for(k=1;k<=3;k++)
s+=(1LL*rez[i][k]*baza[k][j])%666013;
aux[i][j]=s;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
rez[i][j]=aux[i][j];
}
}
int main()
{
int a,b,c,x,y,z,t,n,i,j,k;
cin>>t;
for(i=1;i<=t;i++)
{
cin>>x>>y>>z>>a>>b>>c>>n;
for(j=1;j<=3;j++)
for(k=1;k<=3;k++)
{
if(j==k)
rez[j][k]=1;
else
rez[j][k]=0;
}
I[1][1]=0;
I[1][2]=1;
I[1][3]=0;
I[2][1]=0;
I[2][2]=0;
I[2][3]=1;
I[3][1]=c;
I[3][2]=b;
I[3][3]=a;
ridic(I,n-2);
cout<<((rez[3][1]*x)%666013+(rez[3][2]*y)%666013+(rez[3][3]*z)%666013)%666013<<'\n';
}
return 0;
}