题目大意:
已知一串数An,现在让我们算,其中1<=i,j<=n, 或者我们可以理解为
n<=1e5,m<=1e3.
解题思路:
分类讨论:n<=m时,我们可以暴力算。
当n>m时,那么An中肯定有其中两个项的模m后相等,所以这一项在连乘后贡献出0,所以结果为0.
这题很巧妙的一点是,通过这样的分类后,模的性质发挥了作用,很巧妙。
#include <bits/stdc++.h>
#define int long long
using namespace std;
int32_t main(){
int n,m;cin>>n>>m;
vector<int> arrmv(n);
for(int i=0;i<n;i++)cin>>arrmv[i];
if(n>m)cout<<0<<endl;
else{
int ans=1;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++){
ans*=abs(arrmv[i]-arrmv[j]);
ans%=m;
}
cout<<ans<<endl;
}
return 0;
}