fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int valid_couple_pairs(vector<int> p1m, vector<int> p2m, vector<int> p1f, vector<int> p2f){
  5. // p1m bond with p2f
  6. // p2m bond with p1f
  7.  
  8. int i = 0, j = 0;
  9. int c1 = 0, c2 = 0;
  10.  
  11. if(p1m.size() > 0 && p2f.size() > 0){
  12. sort(p1m.begin(), p1m.end());
  13. sort(p2f.begin(), p2f.end());
  14.  
  15. while(i < p1m.size() && p2f.size()){
  16. if(p1m[i] > p2f[j]){
  17. i++;
  18. j++;
  19. c1++;
  20. }
  21. else{
  22. i++;
  23. }
  24. }
  25. }
  26.  
  27. i = 0;
  28. j = 0;
  29.  
  30. if(p2m.size() > 0 && p1f.size() > 0){
  31. sort(p2m.begin(), p2m.end());
  32. sort(p1f.begin(), p1f.end());
  33.  
  34. while(i < p2m.size() && j < p1f.size()){
  35. if(p1f[j] > p2m[i]){
  36. i++;
  37. j++;
  38. c2++;
  39. }
  40. else{
  41. j++;
  42. }
  43. }
  44. }
  45.  
  46. return c1+c2;
  47. }
  48.  
  49. int main() {
  50. // your code goes here
  51. int n; cin >> n;
  52. vector<int> p1m, p2m;
  53. vector<int> p1f, p2f;
  54. for (int i = 0; i < n; i++){
  55. int a;
  56. cin >> a;
  57. if(a < 0){
  58. p1m.push_back(abs(a));
  59. }
  60. else{
  61. p2m.push_back(a);
  62. }
  63. }
  64. for (int i = 0; i < n; i++){
  65. int a;
  66. cin >> a;
  67. if(a < 0){
  68. p1f.push_back(abs(a));
  69. }
  70. else{
  71. p2f.push_back(a);
  72. }
  73. }
  74.  
  75. cout << valid_couple_pairs(p1m, p2m, p1f, p2f);
  76. return 0;
  77. }
Success #stdin #stdout 0.01s 5292KB
stdin
2
-1800 -2200
1900 1800
stdout
1