题目链接
思路:首先我们都明白一个式子就是如果(a-b)%m0,那么我们是不是都知道a%mb%m,又因为如果n>m的话%m的取值就在【0,999】内,也就是肯定会存在两个数是重合的(这就是鸽巢原理),那么n大于m的时候%m不就是0了,剩下的暴力就行了。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=2e5+1;
const ll inf=1e18;
ll a[maxn];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;++i) scanf("%lld",&a[i]);
if(n>m) {
printf("0\n");return 0;
}
ll ans=1;
for(int i=1;i<=n;++i)
{
for(int j=i+1;j<=n;++j)
ans=ans*abs((a[i]-a[j]))%m;
}
printf("%lld\n",ans);
}