Submission #592574

#TimeUsernameProblemLanguageResultExecution timeMemory
592574snasibov05Robots (IOI13_robots)C++14
76 / 100
3064 ms24788 KiB
#include "robots.h" #include <bits/stdc++.h> using namespace std; int putaway(int a, int b, int t, int x[], int y[], int w[], int s[]) { int ans = -1; sort(x, x + a); sort(y, y + b); reverse(y, y + b); vector<pair<int, int>> v; for (int i = 0; i < t; ++i) v.push_back({w[i], s[i]}); sort(v.begin(), v.end()); int l = 1, r = t; while (l <= r){ int mid = (l + r) / 2; int pt = 0; multiset<int> st; for (int i = 0; i < a; ++i){ while (pt < t && v[pt].first < x[i]) st.insert(v[pt++].second); for (int j = 0; j < mid; ++j){ if (st.empty()) break; st.erase(--st.end()); } } while (pt < t) st.insert(v[pt++].second); int cur = 0; while (!st.empty()){ cur++; if (cur > mid) break; for (int i = 0; i < b; ++i){ auto it = st.lower_bound(y[i]); if (it == st.begin()) break; it--; st.erase(it); } } if (cur <= mid) ans = mid, r = mid - 1; else l = mid + 1; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...