Pagini recente » Cod sursa (job #655743) | Cod sursa (job #359796) | Cod sursa (job #2797944) | Cod sursa (job #2087372) | Cod sursa (job #3262764)
#include <fstream>
using namespace std;
#define LL long long
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int t,x,y,z,a,b,c,n;
struct mat{
LL v[1][3];
};
mat constant,valori;
const int mod=666013;
mat rez(mat a, mat b){
mat c;
c.v[0][0]=((a.v[0][0]%mod*b.v[0][0]%mod)%mod+(a.v[0][1]%mod*b.v[0][1]%mod)%mod+(a.v[0][2]%mod*b.v[0][2]%mod)%mod)%mod;
c.v[0][1]=((c.v[0][0]%mod*b.v[0][0]%mod)%mod+(a.v[0][1]%mod*b.v[0][1]%mod)%mod+(a.v[0][2]%mod*b.v[0][2]%mod)%mod)%mod;
c.v[0][2]=((c.v[0][0]%mod*b.v[0][0]%mod)%mod+(c.v[0][1]%mod*b.v[0][1]%mod)%mod+(a.v[0][2]%mod*b.v[0][2]%mod)%mod)%mod;
return c;
}
mat exp_rapid(LL n, mat a){
if(n==1){
return a;
}
else{
if(n%2==0){
mat p=exp_rapid(n/2,a);
return rez(p,p);
}
else{
mat p=exp_rapid(n-1,a);
return rez(p,constant);
}
}
}
int main()
{
fin>>t;
for(int i=1;i<=t;i++){
fin>>x>>y>>z>>a>>b>>c>>n;
valori.v[0][0]=a;
valori.v[0][1]=b;
valori.v[0][2]=c;
constant.v[0][0]=x;
constant.v[0][1]=y;
constant.v[0][2]=z;
mat ab;
ab=exp_rapid(n,valori);
fout<<ab.v[0][0]<<" "<<ab.v[0][1]<<" "<<ab.v[0][2]<<" ";
fout<<(ab.v[0][0]+ab.v[0][1]+ab.v[0][2])%mod<<'\n';
}
return 0;
}