fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n;
  6. int a[1000001];
  7. int b[1000001];
  8.  
  9. void sub1()
  10. {
  11. int dem=0;
  12. for(int i=1; i<=n-1; i++)
  13. for(int j=i+1; j<=n; j++)
  14. if (a[i]==a[j] && b[i]!=b[j]) dem++;
  15. cout << dem;
  16. }
  17.  
  18. map < int, map <int,int> > M;
  19. void sub2()
  20. {
  21. for(int i=1; i<=n; i++)
  22. M[a[i]][b[i]]++;
  23.  
  24. int kq=0;
  25. for(map < int, map <int,int> > :: iterator it=M.begin(); it!=M.end(); it++)
  26. {
  27. int sl=M[it->first].size();
  28. for(map <int,int> :: iterator itb=M[it->first].begin();
  29. itb!=M[it->first].end(); itb++)
  30. {
  31. int sltrung=M[it->first][itb->first];
  32. kq=kq-sltrung*(sltrung-1)/2;
  33. sl=sl+sltrung-1;
  34. }
  35. kq=kq+sl*(sl-1)/2;
  36. }
  37.  
  38. cout << kq;
  39. }
  40.  
  41. int main()
  42. {
  43. ios_base::sync_with_stdio(false);
  44. cin.tie(0);
  45. freopen("CAU1.INP", "r", stdin);
  46. freopen("CAU1.OUT", "w", stdout);
  47. cin >> n;
  48. for(int i=1; i<=n; i++) cin >> a[i] >> b[i];
  49. if (n<1000) sub1();
  50. else sub2();
  51. return 0;
  52. }
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
Standard output is empty