Advertisement
maycod23

Codeforces_Greedy_Level_1

Jun 18th, 2023
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. #pragma GCC optimize("Ofast,unroll-loops")
  2. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,mmx,avx,avx2")
  3. //think twice code once
  4. //when its getting hard remember why you started
  5. # include <bits/stdc++.h>
  6. #include<ext/pb_ds/assoc_container.hpp>
  7. #include<ext/pb_ds/tree_policy.hpp>
  8.  
  9. using namespace std;
  10. using namespace __gnu_pbds;
  11.  
  12. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
  13. // find_by_order->iterator to that index, order_of_key->returns no of elements smaller than the key;
  14. #ifdef Mayank
  15. #include "bug.h"
  16. #else
  17. #define bug(...)
  18. #endif
  19. typedef long long ll;
  20. typedef unsigned long long ull;
  21. typedef long double ld;
  22.  
  23. typedef pair<int, int> pi;
  24. typedef pair<ll, ll> pl;
  25.  
  26. typedef vector<int> vi;
  27. typedef vector<ld> vd;
  28. typedef vector<ll> vl;
  29. typedef vector<pi> vpi;//typedef for datatype and #define for macro
  30. typedef vector<pl> vpl;
  31.  
  32. # define fast ios_base::sync_with_stdio(false);cin.tie(NULL);
  33. # define MOD 1000000007
  34. # define endl '\n'
  35. # define FOR(i, a, b) for (int i=a; i<(b); i++)
  36. # define F0R(i, a) for (int i=0; i<(a); i++)
  37. # define FORd(i,a,b) for (int i = (b)-1; i >= a; i--)
  38. # define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--)
  39. # define INF 9e18
  40. # define PI 3.14159265358979323846
  41. # define lb lower_bound
  42. # define ub upper_bound
  43. # define mp make_pair
  44. # define pb push_back
  45. # define fi first
  46. # define se second
  47. # define all(a) a.begin(), a.end()
  48. # define iceil(n, x) (((n) + (x) - 1) / (x))
  49. ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
  50. ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
  51. ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
  52. mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
  53. ll lcm(ll a, ll b)
  54. {
  55. return ((a * b) / __gcd(a, b));
  56. }
  57. // int main()
  58. // {
  59. // fast;
  60. // ll t;
  61. // cin >> t;
  62. // while (t--)
  63. // {
  64. // ll n; cin >> n;
  65. // vl v(n); for (ll i = 0; i < n; i++) cin >> v[i];
  66. // ll maxsum = 0;
  67. // ll i = 0;
  68. // while (i < n) {
  69. // if (v[i] > 0) {//+ve chunks
  70. // ll temp = INT_MIN;
  71. // while (i < n && v[i] > 0) {
  72. // temp = max(temp, v[i]);
  73. // i++;
  74. // }
  75. // maxsum += temp; continue;
  76. // }
  77. // if (v[i] < 0) {
  78. // ll temp = INT_MIN;
  79. // while (i < n && v[i] < 0) {
  80. // temp = max(temp, v[i]);
  81. // i++;
  82. // }
  83. // maxsum += temp; continue;
  84. // }
  85. // }
  86. // cout << maxsum << endl;
  87. // }
  88. // return 0;
  89. // }
  90.  
  91.  
  92. int main() {
  93. fast;
  94.  
  95. ll n; cin >> n;
  96. vl a(n); for (ll i = 0; i < n; i++) cin >> v[i];
  97. ll m; cin >> m;
  98. vl b(m); for (ll i = 0; i < m; i++) cin >> b[i];
  99. sort(all(a)); sort(all(b));
  100. int i = 0, j = 0, countans = 0;
  101. while (i < n && j < m) {
  102. if (abs(a[i] - b[j]) <= 1) {
  103. countans++; i++; j++;
  104. }
  105. else if (a[i] < b[j]) {
  106. i++;
  107. }
  108. else j++;
  109. }
  110. cout << countans << endl;
  111. return 0;
  112. }
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement