Submission #1067308

#TimeUsernameProblemLanguageResultExecution timeMemory
1067308Namviet2704Robots (IOI13_robots)C++17
14 / 100
366 ms31932 KiB
#include<bits/stdc++.h> #include"robots.h" #define wei first #define sz second using namespace std; const int N = 1e6 + 2; pair<int, int> c[N]; int a, b, t, x[N], y[N]; bool check(int h) { priority_queue<int, vector<int>, greater<int>> q; vector<int> xetb; int cur = a - 1, cnt = h; for(int i = t - 1; i >= 0; i--) { if(cur == -1) { if(a == 0) xetb.push_back(c[i].sz); else { q.push(c[i].sz); xetb.push_back(q.top()); q.pop(); } continue; } if(c[i].wei < x[cur]) { q.push(c[i].sz); cnt--; if(cnt == 0) cur--, cnt = h; } else { if(cur < a - 1) { q.push(c[i].sz); xetb.push_back(q.top()); q.pop(); } else xetb.push_back(c[i].sz); } } sort(xetb.begin(), xetb.end()); cur = 0, cnt = h; for(auto i : xetb) { if(cur == b) return false; if(i < y[cur]) { cnt--; if(cnt == 0) cur++, cnt = h; } else { while(i >= y[cur] && cur < b) cur++, cnt = h - 1; if(cur == b) return false; } } return true; } int putaway(int ha, int hb, int ht, int hx[], int hy[], int W[], int S[]) { a = ha; b = hb; t = ht; for(int i = 0; i < a; i++) x[i] = hx[i]; for(int i = 0; i < b; i++) y[i] = hy[i]; sort(x + 0, x + a + 0); sort(y + 0, y + b + 0); for(int i = 0; i < t; i++) c[i] = make_pair(W[i], S[i]); sort(c + 0, c + t + 0); int ans = -1, low = 1, high = t, mid; while(low <= high) { mid = (low + high) / 2; if(check(mid)) { ans = mid; high = mid - 1; } else low = mid + 1; } return ans; } //int main () //{ // ios_base::sync_with_stdio(0); // cin.tie(0), cout.tie(0); // cin >> a >> b >> t; // for(int i = 0; i < a; i++) // cin >> x[i]; // for(int i = 0; i < b; i++) // cin >> y[i]; // for(int i = 0; i < t; i++) // cin >> c[i].wei; // for(int i = 0; i < t; i++) // cin >> c[i].sz; // return 0; //}
#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...