This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "robots.h"
//~ #include "grader.cpp"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
typedef pair <ll, ll> pll;
#define precision(n) fixed << setprecision(n)
#define pb push_back
#define ub upper_bound
#define lb lower_bound
#define mp make_pair
#define eps (double)1e-9
#define PI 2*acos(0.0)
#define endl "\n"
#define sz(v) int((v).size())
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define do_not_disturb ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define OK cout << "OK" << endl;
const int N = 50003;
int weak[N], small[N], n, m;
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
n = A; m = B;
for (int i = 0; i < n; i++) weak[i] = X[i];
for (int i = 0; i < m; i++) small[i] = Y[i];
sort(weak, weak+n); sort(small, small+m);
set <int> ws, ss;
map <int, vector <int>> for_W, for_S;
multiset <int> Ws, Ss;
for (int i = 0; i < T; i++) {
for_W[W[i]].pb(S[i]);
for_S[S[i]].pb(W[i]);
ws.insert(W[i]); Ws.insert(W[i]);
ss.insert(S[i]); Ss.insert(S[i]);
}
for (auto to : ws) {
sort(all(for_W[to]));
}
for (auto to : ss) {
sort(all(for_S[to]));
}
int elapsed = 0;
while (sz(Ws) || sz(Ss)) {
int removed = 0;
for (int i = n-1; i >= 0; i--) {
auto itsW = Ws.lb(weak[i]);
if (itsW == Ws.begin()) break;
itsW--;
auto itsS = for_W[*itsW].back();
for_W[*itsW].pop_back();
Ws.erase(Ws.find(*itsW));
Ss.erase(Ss.find(itsS));
removed++;
}
for (int i = m-1; i >= 0; i--) {
auto itsS = Ss.lb(small[i]);
if (itsS == Ss.begin()) break;
itsS--;
auto itsW = for_S[*itsS].back();
for_S[*itsS].pop_back();
Ss.erase(Ss.find(*itsS));
Ws.erase(Ws.find(itsW));
removed++;
}
if (removed == 0) return -1;
elapsed++;
}
return elapsed;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |