fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define endl '\n'
  4. #define int long long
  5. const int MOD = 158400;
  6. const int MOD2 = 998244353;
  7. const int INF = LLONG_MAX/2;
  8.  
  9. int primes[1000000];
  10.  
  11. void seive(){
  12. fill(primes, primes + 1000000, 1);
  13. primes[0] = primes[1] = 0;
  14. for(int i = 2 ; i*i < 1000000 ; i++){
  15. if(primes[i]){
  16. for(int j = i*i ; j < 1000000 ; j += i){
  17. primes[j] = 0;
  18. }
  19. }
  20. }
  21. for(int i = 1 ; i < 1000000 ; i++){
  22. primes[i] += primes[i-1];
  23. }
  24. }
  25. int factorial(int n){
  26. if(n==0){
  27. return 1;
  28. }
  29. return (n*(factorial(n-1)))%MOD;
  30. }
  31. bool isPrime(int n){
  32. if(n <= 1) return false;
  33. for(int i = 2 ; i*i <= n ; i++){
  34. if(n % i == 0) return false;
  35. }
  36. return true;
  37. }
  38.  
  39. int power(int a, int b){
  40. if(b == 0) return 1;
  41. a %= MOD;
  42. int value = power(a, b / 2);
  43. if(b % 2 == 0){
  44. return (value * value) % MOD;
  45. } else {
  46. return ((value * value) % MOD * (a % MOD)) % MOD;
  47. }
  48. }
  49.  
  50. int gcd(int a, int b){
  51. if(a == 0) return b;
  52. return gcd(b % a, a);
  53. }
  54. void solve() {
  55. int n;
  56. cin>>n;
  57. int A[n],B[n];
  58. map<int,int>m1,m2;
  59. for(int i = 0 ; i<n ; i++){
  60. cin>>A[i];
  61. if(A[i]<0){
  62. m1[abs(A[i])]++;
  63. }
  64. if(A[i]>0){
  65. m2[A[i]]++;
  66. }
  67. }
  68. for(int i = 0 ; i<n ; i++){
  69. cin>>B[i];
  70. }
  71. int cnt = 0;
  72. for(int i = 0 ; i<n ; i++){
  73. if(B[i]<0){
  74. auto it = m2.lower_bound(abs(B[i]));
  75. if(it!=m2.begin()){
  76. it--;
  77. if(m2[it->first]>0){
  78. cnt++;
  79. m2[it->first]--;
  80. }
  81. if(m2[it->first]==0){
  82. m2.erase(it->first);
  83. }
  84. }
  85. }
  86. else{
  87. auto it = m1.upper_bound(B[i]);
  88. if(it != m1.end()){
  89. if(m1[it->first]>0){
  90. cnt++;
  91. m1[it->first]--;
  92. }
  93. if(m1[it->first]==0){
  94. m1.erase(it->first);
  95. }
  96. }
  97. }
  98. }
  99. cout<<cnt<<endl;
  100. }
  101.  
  102. signed main(){
  103. ios::sync_with_stdio(false); cin.tie(NULL);
  104. //int t;
  105. //cin >> t;
  106. //while(t--){
  107. solve();
  108. //}
  109. return 0;
  110. }
  111.  
  112.  
Success #stdin #stdout 0.01s 5320KB
stdin
7
-1900 -2000 -2500 1500 1600 2500 -2500
1800 -1550 2200 -1550 2100 -2500 -1700
stdout
5