fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. int n;
  6. cin>>n;
  7. vector<int> males;
  8. vector<int> females;
  9. for(int i=0;i<n;i++){
  10. int height;
  11. cin>>height;
  12. males.push_back(height);
  13. }
  14. for(int i=0;i<n;i++){
  15. int height;
  16. cin>>height;
  17. females.push_back(height);
  18. }
  19. int pairs=0;
  20. vector<int> positiveMales;
  21. vector<int> positiveFemales;
  22. vector<int> negativeMales;
  23. vector<int> negativeFemales;
  24.  
  25. for(int i=0;i<n;i++){
  26. if(males[i]<0)
  27. negativeMales.push_back(abs(males[i]));
  28. else
  29. positiveMales.push_back(males[i]);
  30. }
  31. for(int i=0;i<n;i++){
  32. if(females[i]<0)
  33. negativeFemales.push_back(abs(females[i]));
  34. else
  35. positiveFemales.push_back(females[i]);
  36. }
  37. sort(negativeMales.begin(), negativeMales.end());
  38. sort(positiveMales.begin(), positiveMales.end());
  39. sort(negativeFemales.begin(), negativeFemales.end());
  40. sort(positiveFemales.begin(), positiveFemales.end());
  41. int i=0, j=0;
  42. while(i<positiveMales.size() && j<negativeFemales.size()){
  43. if(positiveMales[i]<negativeFemales[j]){
  44. pairs++;
  45. i++;
  46. j++;
  47. }
  48. else{
  49. j++;
  50. }
  51. }
  52. i=0, j=0;
  53. while(i<positiveFemales.size() && j<negativeMales.size()){
  54. if(positiveFemales[i]<negativeMales[j]){
  55. pairs++;
  56. i++;
  57. j++;
  58. }
  59. else{
  60. j++;
  61. }
  62. }
  63. cout<<pairs;
  64. return 0;
  65. }
Success #stdin #stdout 0s 5324KB
stdin
7
-1900 -2000 -2500 1500 1600 2500 -2500
1800 -1550 2200 -1550 2100 -2500 -1700
stdout
5