Pagini recente » Cod sursa (job #207911) | Cod sursa (job #2990825) | Cod sursa (job #2686590) | Istoria paginii info-oltenia-2019/echipe/clasament/9-10 | Cod sursa (job #741549)
Cod sursa(job #741549)
#include <fstream>
using namespace std;
fstream fin("patrate2.in",ios::in);
int c,n,aux,vp[5000],vf[5000],i,j,t,k,l,vr[5000],x;
int main(){
freopen("patrate2.out", "w", stdout);
fin>>n;k=1;vf[1]=1;
for(i=2;i<=n;i++){
for(j=1;j<=k;j++){
vf[j]=vf[j]*i+t;
t=vf[j]/10;
vf[j]=vf[j]%10;
}
while(t){
k++;vf[k]=t%10;
t/=10;
}
}
vp[1]=1;l=k;k=1;aux=n;n=n*n/2;
for(i=1;i<=n;i++){
for(j=1;j<=k;j++){
vp[j]=vp[j]*4+t;
t=vp[j]/10;
vp[j]=vp[j]%10;
}
while(t){
k++;vp[k]=t%10;
t/=10;
}
}
if(aux%2){
for(j=1;j<=k;j++){
vp[j]=vp[j]*2+t;
t=vp[j]/10;
vp[j]=vp[j]%10;
}
while(t){
k++;vp[k]=t%10;
t/=10;
}
}
// memset(vr,sizeof(vr),0);
for(i=1;i<=l;i++){
for(j=1;j<=k;j++){
vr[j+i-1]+=vp[j]*vf[i]+t;
t=vr[j+i-1]/10;
vr[j+i-1]%=10;
}
while(t){
vr[j+i-1]+=t;
t=vr[j+i-1]/10;
vr[i+j-1]%=10;
j++;
}
}
if(vr[k+l]) printf("%d",vr[k+l]);
for(i=k+l-1;i>0;i--) printf("%d",vr[i]);
//fout<<endl<<vr[1];
fin.close();
return 0;
}