Submission #1036867

#TimeUsernameProblemLanguageResultExecution timeMemory
1036867clementineRobots (IOI13_robots)C++17
100 / 100
1295 ms24852 KiB
#include "robots.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { vector<int> a(X, X+A), b(Y, Y+B); vector<pair<int, int>> t(T); for(int i = 0; i <T; i ++) { t[i] = {W[i], S[i]};} sort(a.begin(), a.end()); sort(b.begin(), b.end()); sort(t.begin(), t.end()); int l = 1; int r = T+1; while(l <r) { int mid = (l + r)/2; //cout << l << " " << r << " " << '\n'; priority_queue<int> taken; int toyid = 0; for(int aid = 0; aid <A; aid ++) { while(t[toyid].first < a[aid] && toyid < T) { taken.push(t[toyid].second); toyid ++; } for(int i = 0; i < mid && !taken.empty(); i ++) { taken.pop(); } } for(; toyid < T; toyid ++) { taken.push(t[toyid].second); } for(int i = B-1; i >=0 &&!taken.empty(); i --) { for(int j = mid-1; j >= 0 && !taken.empty(); j --) { if(taken.top() >= b[i]) { break; } else {taken.pop();} } } if(taken.empty()) { r = mid; } else { l = mid + 1;} } if(l == T+1) { return -1; } else { return l; } }
#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...