编号
题目描述
太郎有 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。
C++实现
#include
#include
using namespace std;
int main()
{
int n,i,maxnumber[51]; long long ans=1; cin>>n;
for(i=1;i<=n;i++)cin>>maxnumber[i];
sort(maxnumber+1,maxnumber+n+1); //排序,默认升序
for(i=1;i<=n;i++){
ans*=(maxnumber[i]-i+1);
ans%=1000000007;
}
cout<<ans<<endl;
return 0;
}
接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容