Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 30005;
- int n;
- int t[N], s[N];
- bool check(int k) {
- multiset <int> ms;
- for (int i = 0; i < k; i++) {
- ms.insert(0);
- }
- for (int i = 1; i <= n; i++) {
- if (*ms.begin() <= t[i] + 10) {
- int new_t = max(*ms.begin(), t[i]) + s[i];
- ms.erase(ms.begin());
- ms.insert(new_t);
- } else {
- return false;
- }
- }
- return true;
- }
- int main(){
- cin >> n;
- for (int i = 1; i <= n; i++) {
- cin >> t[i] >> s[i];
- }
- int l = 1, r = n;
- while (l <= r) {
- int md = (l + r) / 2;
- if (check(md) == true) {
- r = md - 1;
- } else {
- l = md + 1;
- }
- }
- cout << r + 1 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement