fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. bool func(const pair<int,int> &a,const pair<int,int> &b)
  5. {
  6. if(a.first<=b.first)return true;
  7. return false;
  8.  
  9. }
  10. int main()
  11. {
  12. int n;
  13. cin>>n;
  14. vector<pair<int,int> >x(n);
  15. vector<pair<int,int> >y(n);
  16. ///v.first ->x , v.second ->y
  17. for(int i=0;i<n;i++){
  18. cin>>x[i].first;
  19. cin>>y[i].first;
  20. x[i].second=i;
  21. y[i].second=i;
  22. }
  23. sort(x.begin(),x.end(),func);
  24. int d[n];
  25. d[x[0].second]=0;
  26. for(int i=1;i<n;i++)
  27. {
  28. if(x[i].first>x[i-1].first)
  29. d[x[i].second]=d[x[i-1].second]+1;
  30. else ///x[i].first==x[i-1].first
  31. d[x[i].second]=d[x[i-1].second];
  32. }
  33. sort(y.begin(),y.end(),func);
  34. int d2[n];
  35. d2[y[0].second]=0;
  36. for(int i=1;i<n;i++)
  37. {
  38. if(y[i].first>y[i-1].first)
  39. d2[y[i].second]=d2[y[i-1].second]+1;
  40. else ///y[i].first==y[i-1].first
  41. d2[y[i].second]=d2[y[i-1].second];
  42. }
  43. int s=0;
  44. for(int i=0;i<n;i++)
  45. s+=min(d[i],d2[i]);
  46. cout<<s;
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0s 15240KB
stdin
4
2 4
1 3
5 4
4 1
stdout
3