答案为:
代码
#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();
} 
京公网安备 11010502036488号