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 <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define FOR(i, a, b) for(ll i = (ll)a; i <= (ll)b; i++)
#define DEC(i, a, b) for(ll i = (ll)a; i >= (ll)b; i--)
typedef pair<ll, ll> pi;
typedef pair<ll, pi> pii;
#define f first
#define s second
typedef vector<ll> vi;
typedef vector<pi> vpi;
typedef vector<pii> vpii;
#define pb push_back
#define pf push_front
#define all(v) v.begin(), v.end()
#define INF (ll) 1e9 + 100
#define LLINF (ll) 1e18
#define fastio ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
ll a, b, t, weak[50005], small[50005];
pi toy[1000005];
bool check(ll x) {
priority_queue<ll> pq;
ll idx = 1;
FOR(i, 1, a) {
while (idx <= t and toy[idx].f < weak[i]) pq.push(toy[idx++].s);
FOR(j, 1, x) {
if (pq.empty()) break;
pq.pop();
}
}
while (idx <= t) pq.push(toy[idx++].s);
DEC(i, b, 1) {
FOR(j, 1, x) {
if (!pq.empty() and pq.top() < small[i]) pq.pop();
else break;
}
}
return pq.empty();
}
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
a = A, b = B, t = T;
FOR(i, 1, t) toy[i] = pi(W[i-1], S[i-1]);
sort(toy+1, toy+t+1);
FOR(i, 1, a) weak[i] = X[i-1];
sort(weak+1, weak+a+1);
FOR(i, 1, b) small[i] = Y[i-1];
sort(small+1, small+b+1);
FOR(i, 1, t) {
auto it = upper_bound(weak+1, weak+a+1, toy[i].f);
auto it2 = upper_bound(small+1, small+b+1, toy[i].s);
if (it == weak+a+1 and it2 == small+b+1) return -1;
}
ll lower = 0, upper = t;
while (upper - lower > 1) {
ll mid = (upper + lower)/2;
if (check(mid)) upper = mid;
else lower = mid;
}
return upper;
}
# | 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... |