题目链接
起点一样,那么按num 排序。地推。每个数可以选ai-i+1种,若<=0无解。
ll a[60];
signed main(){
ll n;
read(n);
for(int i=1;i<=n;i++){
read(a[i]);
}
sort(a+1,a+1+n);
ll ans=1;
for(int i=1;i<=n;i++){
if(a[i]-i+1<=0){
printf("0");
return 0;
}
ans=ans*(a[i]-i+1)%mods;
}
printf("%lld",ans%mods);
}