Submission #1263695

#TimeUsernameProblemLanguageResultExecution timeMemory
1263695aren_danceRobots (IOI13_robots)C++20
76 / 100
3092 ms14896 KiB
#include <iostream> #include <vector> #include <algorithm> #include <set> #include "robots.h" using namespace std; int putaway(int a, int b, int t, int x[], int y[], int w[], int s[]) { int answ = -1; int l = 1; int r = t; while (l <= r) { int m = (l + r) / 2; multiset<pair<int, int>> p1; multiset<pair<int, int>> p2; for (int i = 0;i < a;++i) { p1.insert({x[i],m}); } for (int i = 0;i < b;++i) { p2.insert({y[i],m}); } bool fl = 1; vector<pair<int, int>> g; for (int i = 0;i < t;++i) { g.push_back({s[i],w[i]}); } sort(g.rbegin(), g.rend()); for (auto i : g) { int x1 = i.second; int y1 = i.first; auto u = p1.lower_bound(make_pair(x1+1,-1)); if (u != p1.end()) { pair<int, int> o = *u; o.second--; p1.erase(u); if (o.second != 0) { p1.insert(o); } continue; } auto v = p2.lower_bound(make_pair(y1 + 1, 0)); if (v != p2.end()) { pair<int, int> o = *v; o.second--; p2.erase(v); if (o.second != 0) { p2.insert(o); } continue; } else { fl = 0; break; } } if (fl) { r = m - 1; answ = m; } else { l = m + 1; } } return answ; }
#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...