编号
题目描述
太郎有 N N N 只兔子,现在为了方便识别它们,太郎要给他们编号。兔子们向太郎表达了它们对号码的喜好,每个兔子 i i i 想要一个整数,介于 1 1 1 和 M i M_i Mi 之间(可以为 1 1 1 或 M i M_i Mi)。当然,每个兔子的编号是不同的。现在太郎想知道一共有多少种编号的方法。
你只用输出答案对 1 0 9 + 7 10^9+7 109+7 取余的结果即可。如果这是不可能的,就输出 0 0 0。
输入格式
第一行是一个整数 N N N。
第二行 N N N 个整数 M i M_i Mi。
输出格式
一个整数,表示方案总数。
样例 #1
样例输入 #1
2
5 8
样例输出 #1
35
提示
数据范围及约定
对于全部数据, 1 ≤ N ≤ 50 1 \le N \le 50 1≤N≤50, 1 ≤ M i ≤ 1000 1\le M_i\le 1000 1≤Mi≤1000。
代码实现:
#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
int main(){
int n,i,num[51];
long long ans=1;
cin>>n;
for(i=0;i<n;i++){
cin>>num[i];
}
sort(num,num+n);
for(i=0;i<n;i++){
ans*=(num[i]-i);
ans%=MOD;
}
cout<<ans<<endl;
return 0;
}