題面
題意:
現在有一個長度爲的數組,找出有多少對滿足並且。
思路:
左右同乘,則式子化爲
移項得:
.
因此我們至於要統計每個 出現的次數,再累加即可,和可以的解決這個問題。
#include<bits/stdc++.h>
using namespace std;
set<long long > s;
map<long long ,long long > mmp;
int main(){
long long n,p,x,k;
cin>>n>>p>>k;
for(int i=1;i<=n;i++){
cin>>x;
mmp[((x%p*x%p*x%p*x%p)%p-(k%p*x%p)+p)%p]++;
s.insert(((x%p*x%p*x%p*x%p)%p-(k%p*x%p)%p+p)%p);
}
long long ans=0;
for(long long v:s){
ans+=(mmp[v]*(mmp[v]-1)/2);
}
cout<<ans<<endl;
return 0;
}