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;
bool td[1000005];
int tt[1000005];
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]){
	vector<pair<pair<int,int>,int> > w,s;
	for(int i=0;i<T;i++){
		w.push_back(make_pair(make_pair(W[i],S[i]),i));
		s.push_back(make_pair(make_pair(S[i],W[i]),i));
	}
	sort(s.begin(),s.end());
	sort(w.begin(),w.end());
	sort(X,X+A);
	sort(Y,Y+B);
	int lo=1,hi=T;
	int rs=T+2;
	while(lo<=hi){memset(td,false,sizeof(td));
		int mid=(lo+hi)>>1;
		int l=0;
		int done=0;
		priority_queue<pair<int,int> > pq;
		for(int i=0;i<A;i++){
			pair<pair<int,int>,int> sc = {{X[i],0},0};
			int idx=lower_bound(w.begin(),w.end(),sc)-w.begin();
			for(int j=idx-1;j>=l;j--) pq.push(make_pair(w[j].first.second,w[j].second));
			l=idx;
			int s=0;
			while(s<mid && !pq.empty()){
				s++;
				int idx=pq.top().second;
				td[idx]=true;
				done++;
				pq.pop();
			}
		} l=0; 
		for(;!pq.empty();pq.pop());
		for(int i=0;i<B;i++){
			pair<pair<int,int>,int> sc = {{Y[i],0},0};
			int idx=lower_bound(s.begin(),s.end(),sc)-s.begin();
			for(int j=idx-1;j>=l;j--){
				if(!td[s[j].second]){
					pq.push(make_pair(s[j].first.second,s[j].second));
				}
			}
			l=idx;
			int s=0;
			while(s<mid && !pq.empty()){
				s++;
				int idx=pq.top().second;
				td[idx]=true;
				pq.pop();
				done++;
			}
		}
		if(done==T){
			rs=mid;
			hi=mid-1;
		}
		else{
			lo=mid+1;
		}
	}
	if(rs==T+2) return -1;
	else return rs;
}
| # | 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... |