Advertisement
lalalalalalalaalalla

Untitled

Dec 15th, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define int long long
  6. #define all(a) a.begin(), a.end()
  7. #define pii pair<int, int>
  8. #define ull unsigned long long
  9. #define ld long double
  10.  
  11. int n, m, t;
  12. vector<vector<pair<int, int> > > a;
  13. bool used[2][110];
  14.  
  15. pair<int, int> find_new() {
  16. pair<int, int> ans;
  17. ans.first = -1;
  18. ans.second = -1;
  19. for (int i = 0; i < n; i++) {
  20. if (!used[0][i] && (ans.first == -1 || (a[ans.first][ans.second].first > a[0][i].first))) {
  21. ans.first = 0;
  22. ans.second = i;
  23. }
  24. }
  25. for (int i = 0; i < m; i++) {
  26. if (!used[1][i] && (ans.first == -1 || a[ans.first][ans.second].first > a[1][i].first)) {
  27. ans.first = 1;
  28. ans.second = i;
  29. }
  30. }
  31. return ans;
  32. }
  33.  
  34. void sim(bool line, int ind) {
  35. used[line][ind] = 1;
  36. int nxtind = -1;
  37. if (line == 1) {
  38. for (int i = 0; i < n; i++) {
  39. if (!used[0][i] && a[0][i].first - a[line][ind].second >= t && (nxtind == -1 || a[0][nxtind].first > a[0][i].first)) {
  40. nxtind = i;
  41. }
  42. }
  43. if (nxtind == -1) return;
  44. sim(0, nxtind);
  45. } else {
  46. for (int i = 0; i < m; i++) {
  47. if (!used[1][i] && a[1][i].first - a[line][ind].second >= t && (nxtind == -1 || a[1][nxtind].first > a[1][i].first)) {
  48. nxtind = i;
  49. }
  50. }
  51. if (nxtind == -1) return;
  52. sim(1, nxtind);
  53. }
  54. }
  55.  
  56. signed main()
  57. {
  58. cin >> t;
  59. cin >> n;
  60. a.resize(2);
  61. a[0].resize(n);
  62. for (int i = 0; i < n; i++) cin >> a[0][i].first >> a[0][i].second;
  63. cin >> m;
  64. a[1].resize(m);
  65. for (int i = 0; i < m; i++) cin >> a[1][i].first >> a[1][i].second;
  66. for (int i = 0; i < 110; i++) {
  67. used[0][i] = 0;
  68. used[1][i] = 0;
  69. }
  70. int ans = 0;
  71. pair<int, int> kek = find_new();
  72. while (kek.first != -1) {
  73. ans++;
  74. sim(kek.first, kek.second);
  75. kek = find_new();
  76. }
  77. cout << ans;
  78. }
  79. /*
  80. 6
  81. 7
  82. 38
  83.  
  84. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement