Pagini recente » Cod sursa (job #2674656) | Cod sursa (job #3352970) | Cod sursa (job #2235181) | Cod sursa (job #2118685) | Cod sursa (job #3351289)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int I[4][4],rez[4][4];
void ridic(int 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+rez[3][2]*y+rez[3][3]*z)<<'\n';
}
return 0;
}