题目描述
不知从何时开始,zzz迷上了面包这一小食品,不仅便宜便捷,随时随地饿了就吃,而且也是ACM赛程中不可少的点心之一(特别是从早上打到下午,莫的吃午饭的那种比赛~~)!
好了,言归正传,在SZ市有一家IT牌面包店,种类繁多,回味无穷,但也有一个缺点,就是过道狭窄,而且入口与出口是同一个。也就是说,当你进入这家面包店挑选完面包之后,如果发现后面有人也进入了这家面包店,那么,你是无论如何也不可能越过这个人提前付款离开这家店的,因为走廊实在太窄了,所以你只能进入VIP席等待,只有抓住走廊中无人的这个时机才有可能出门结账!
由于这家店面的特殊性以及火爆程度,店长也很应景的提出一个问题,能回答者,将终身免单且享受绿色通道进出店面,zzz想要拿到这个至尊权限但又不会做这一题,只好抛给了学编程的你:
假设这家面包店一天内一共有n个顾客,按进入店内的顺序从1~n标号,而每当一位顾客出门结账时,他的编号也会被记录,问这一天内一共会有多少种不同的结账顺序?判断一个顾客是否能结账的条件如上所述,为了更加方便统计,现规定,如果店内存在编号大于自己的顾客,则自己也将受其约束,不能结账!
输入描述
一行一个整数n,代表一天内一共有n个顾客进入。 1 ≤ n ≤ 2 × 105
输出描述
一行一个整数表示结果。
样例输入
3
样例输出
5
来源
逆乾 WIT第二届程序设计竞赛(现场赛)