2345: 统计序列个数

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:3 解决:0

题目描述

对于给定的一个长度为n的序列{B[n]},问有多少个序列{A[n]}对于所有的i满足:A[1]A[i]i个数字中有恰好B[i]个数字小等于i。其中{A[n]}1n的一个排列,即1nn个数字在序列A[I]中恰好出现一次。

 

数据保证了至少有一个排列满足B序列。

输入

输入的第1行为一个正整数N,表示了

2行包含N个非负整数,描述了序列B[I]

 

 

输出

  输出仅包括一个非负整数,即满足的A[I]序列个数。

样例输入 复制

3
0 1 3

样例输出 复制

3

提示

【样例说明】

  对于A序列为13的全排列分别对应的B序列如下(冒号左边为A序列,冒号右边为对应B的序列)

  1 2 31 2 3

  1 3 21 1 3

  2 1 30 2 3

  2 3 10 1 3

  3 1 20 1 3

  3 2 10 1 3

  所以有3个满足的A序列。

 

【数据规模】

对于20%的数据,有N8

对于30%的数据,有N11且答案不大于20000

对于50%的数据,有N100

 

对于100%的数据,有N2000