#include"robots.h"
#include<bits/stdc++.h>
using namespace std;
int putaway(int A,int B,int T,int X[],int Y[],int W[],int S[])
{
vector< pair<int,int> > vi;
for(int i=0;i<T;i++) vi.push_back({W[i],S[i]});
sort(vi.begin(),vi.end());
sort(X,X+A);
sort(Y,Y+B,greater<int>());
int l=1,r=T,ans=-1;
while(l<=r)
{
int mid=(l+r)/2,p=A-1;
priority_queue<int> pq;
vector<int> w;
for(int i=T-1;i+1;i--) if(vi[i].first>X[A-1]) w.push_back(vi[i].second);
else
{
while(p>0&&vi[i].first<=X[p-1])
{
for(int j=1;j<=mid&&!pq.empty();j++) pq.pop();
while(!pq.empty()) w.push_back(pq.top()),pq.pop();
p--;
}
pq.push(vi[i].second);
}
for(int j=1;j<=mid&&!pq.empty();j++) pq.pop();
while(!pq.empty()) w.push_back(pq.top()),pq.pop();
sort(w.begin(),w.end(),greater<int>());
int f=mid,pt=0;
bool ck=true;
for(auto v:w)
{
if(f==0) pt++,f=mid;
if(pt==B||v>Y[pt])
{
ck=false;
break;
}
f--;
}
if(!ck) l=mid+1;
else r=mid-1,ans=mid;
}
return ans;
}
# | 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... |