fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. vector<int> a;
  6. int solve(int n, int p, int k){
  7. unordered_map<int,int> mp;
  8.  
  9. int ct = 0;
  10.  
  11. for(int i=0; i<n; i++){
  12. int val = a[i]%p;
  13. int power4 = val;
  14. power4 = (power4 * val)%p;
  15. power4 = (power4 * val)%p;
  16. power4 = (power4 * val)%p;
  17.  
  18. int req = (power4 - (k*val)%p + p)%p;
  19.  
  20. if(mp.count(req)){
  21. ct += mp[req];
  22. }
  23.  
  24. mp[req]++;
  25.  
  26. }
  27.  
  28. return ct;
  29.  
  30. }
  31.  
  32. int main() {
  33.  
  34. int n, p, k;
  35. cin >> n >> p >> k;
  36.  
  37. a.resize(n);
  38. for(int i=0; i<n; i++) cin >> a[i];
  39.  
  40. cout << solve(n, p, k) << endl;
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 5320KB
stdin
3 3 0
0 1 2
stdout
1