记录编号 352923 评测结果 AAAAA
题目名称 [NOIP 2003]栈 最终得分 100
用户昵称 GravatarGo灬Fire 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2016-11-17 19:02:25 内存使用 0.32 MiB
显示代码纯文本
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define LL long long
#define Begin freopen("stack.in","r",stdin);freopen("stack.out","w",stdout);
#define End fclose(stdin);fclose(stdout);
const int maxn=1010;
int n,Prime[maxn],tot;
bool vis[maxn];
void Get_Prime(){
	for(int i=2;i<=2*n+100;i++){
		if(!vis[i])Prime[++tot]=i;
		for(int j=1;j<=tot;j++){
			if(Prime[j]*i>2*n+100)break;
			vis[i*Prime[j]]=true;
			if(i%Prime[j]==0)break;
		}
	}
}
LL qpow(LL x,int h){
	LL ans=1;
	while(h){
		if(h&1)ans*=x;
		x*=x;h>>=1;
	}
	return ans;
}
int Count(int date,int x){
	int num=0;
	while(date){
		num+=date/x;
		date/=x;
	}
	return num;
}
void Init();

int main(){
    Begin;
    Init();
    getchar();getchar();
    End;
    return 0;
}
void Init(){ 
	scanf("%d",&n);
	Get_Prime();
	LL ans=1;
	for(int i=1;Prime[i]<=2*n;i++){
		int num=Count(2*n,Prime[i])-Count(n,Prime[i])*2;
		ans*=qpow(Prime[i],num);
	}
	ans/=(n+1);
	printf("%lld\n",ans);
}