答案为:
代码
#include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(auto i=(a);i<=(b);++i) #define dep(i,a,b) for(auto i=(a);i>=(b);--i) #define pb push_back typedef long long ll; const int maxn=(int)1e6+100; int n,m,mod; ll a[maxn],c[maxn]; void solve(){ rep(i,1,n) scanf("%lld",&a[i]); sort(a+1,a+1+n); rep(i,1,m+1) c[i]=0; rep(i,1,n) c[1]++,c[a[i]+1]--; rep(i,1,m+1) c[i]+=c[i-1]; ll ans=1; rep(i,1,n-1) (ans*=a[i])%=mod; rep(i,2,m) (ans*=c[i])%=mod; printf("%lld\n",ans); } int main(){ while(~scanf("%d%d%d",&n,&m,&mod)) solve(); }