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;
#define fi first
#define se second
typedef pair<int,int> pii;
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
vector<int>x,y;
for(int i=0;i<A;i++)x.push_back(X[i]);
for(int i=0;i<B;i++)y.push_back(Y[i]);
sort(x.begin(),x.end());
sort(y.begin(),y.end());
vector<pii>pt(T);
for(int i=0;i<T;i++)pt[i] = {W[i],S[i]};
sort(pt.begin(),pt.end());
int l = 1,r = T;
while(r>=l){
int mid = (l+r)/2;
multiset<int,greater<int>>lft;
int p = 0;
for(int i=0;i<A;i++){
while(p<T && pt[p].fi < x[i]){
lft.insert(pt[p].se);
p++;
}
for(int j=0;j<mid;j++){
if(lft.empty())break;
lft.erase(lft.begin());
}
}
while(p!=T){
lft.insert(pt[p].se);
p++;
}
//cout<<mid<<" "<<lft.size()<<'\n';
for(int i=B-1;i>=0;i--){
for(int j=0;j<mid;j++){
if(lft.empty())break;
if(*lft.begin() >= y[i])break;
lft.erase(lft.begin());
}
}
if(lft.empty())r = mid-1;
else l = mid+1;
}
if(l == T+1)return -1;
return l;
}
# | 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... |