This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// And you curse yourself for things you never done
#include<bits/stdc++.h>
#include "robots.h"
#define F first
#define S second
#define PB push_back
#define sz(s) int((s).size())
#define bit(n,k) (((n)>>(k))&1)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int maxn = 1e6 + 10, mod = 1e9 + 7, inf = 1e9 + 10;
int putaway(int n, int m, int T, int X[], int Y[], int XX[], int YY[]){
vector<pii> v;
for(int i = 0; i < T; i++)
v.PB({XX[i], YY[i]});
sort(v.begin(), v.end());
sort(X, X+n), sort(Y, Y+m);
int l = 0, r = T+1;
while(r-l > 1){
bool bad = 0;
int mid = (l+r) >> 1;
priority_queue<int> pq;
int pt = 0;
for(int i = 0; i < n; i++){
while(pt < T && v[pt].F < X[i])
pq.push(v[pt].S), pt++;
int SZ = max(int(0), sz(pq) - mid);
while(sz(pq) > SZ)
pq.pop();
}
while(pt < T)
pq.push(v[pt].S), pt++;
for(int i = m-1; i >= 0; i--){
int SZ = max(int(0), sz(pq)-mid);
while(sz(pq) > SZ)
bad|= pq.top() >= Y[i], pq.pop();
}
bad|= sz(pq);
if(bad)
l = mid;
else
r = mid;
}
return (r == T+1 ? -1 : r);
}
# | 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... |