Submission #576019

#TimeUsernameProblemLanguageResultExecution timeMemory
576019handlenameRobots (IOI13_robots)C++17
28 / 100
1441 ms14652 KiB
#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[]) {
	sort(X,X+A);
	sort(Y,Y+B);
	for (int i=0;i<T;i++){
	    if (W[i]>=X[A-1] && S[i]>=Y[B-1]) return -1;
	}
	pair<int,int> toys[T];
	for (int i=0;i<T;i++) toys[i]=make_pair(W[i],S[i]);
	sort(toys,toys+T);
	int mini=0,maxi=T;
	while (mini+1<maxi){
	    int mid=(mini+maxi)/2;
	    priority_queue<int> pq; //stores sizes
	    int id=0;
	    for (int i=0;i<A;i++){
	        while (id<T && toys[id].first<X[i]){
	            pq.push(toys[id].second);
                id++;
	        }
	        int countt=0;
	        while (!pq.empty() && countt<mid){
	            pq.pop();
	            countt++;
	        }
	    }
        for (int i=id;i<T;i++) pq.push(toys[id].second);
	    for (int i=B-1;i>=0;i--){
	        int countt=0;
	        while ((!pq.empty() && pq.top()<Y[i]) && countt<mid){
	            pq.pop();
	            countt++;
	        }
	    }
	    if (pq.empty()) maxi=mid;
	    else mini=mid;
	}
	return maxi;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...