Pagini recente » Cod sursa (job #2213675) | Cod sursa (job #2267778) | Cod sursa (job #909985) | Cod sursa (job #1019840) | Cod sursa (job #3337778)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int m[4][4],q[4][4],I[4][4];
#define MOD 666013
void inmultire(int m1[4][4], int m2[4][4])
{
int i,j,k;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
q[i][j]=0;
for(k=1;k<=3;k++)
q[i][j]=(q[i][j]+1LL*m1[i][k]*m2[k][j]%MOD)%MOD;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
m1[i][j]=q[i][j];
}
int main()
{
int x,y,z,a,b,c;
int t,n,k;
cin>>t;
for(k=1;k<=t;k++)
{
cin>>x>>y>>z>>a>>b>>c>>n;
m[1][1]=0; m[1][2]=1; m[1][3]=0;
m[2][1]=0; m[2][2]=0; m[2][3]=1;
m[3][1]=c; m[3][2]=b; m[3][3]=a;
I[1][1]=1; I[1][2]=0; I[1][3]=0;
I[2][1]=0; I[2][2]=1; I[2][3]=0;
I[3][1]=0; I[3][2]=0; I[3][3]=1;
n-=2;
while(n>0)
{
if(n%2==1)
inmultire(I,m);
inmultire(m,m);
n/=2;
}
cout<<(1LL*I[3][1]*x%MOD+1LL*I[3][2]*y%MOD+1ll*I[3][3]*z%MOD)%MOD<<'\n';
}
return 0;
}