Submission #757293

#TimeUsernameProblemLanguageResultExecution timeMemory
757293safaricolaRobots (IOI13_robots)C++17
100 / 100
1688 ms32328 KiB
#include<bits/stdc++.h>
using namespace std;
#include "robots.h"
#define rep(i,n) for(int i=0; i<n; i++)
#define ii pair<int,int>
#define f first
#define s second
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
    ii r[1000010];
    rep(i,T)r[i]={W[i],S[i]};
    sort(r,r+T);
    sort(X,X+A);
    sort(Y,Y+B);
    int s=0, e=T+1, m;
    while(e-s>1){
        m=(e+s)/2;
        //cout<<m<<' ';
        priority_queue<ii> pq;
        int ind=0;
        rep(i,A){
            while(ind<T&&r[ind].f<X[i]){
                pq.push({r[ind].s,r[ind].f});
                ind++;
            }
            int M=m;
            while(M--&&pq.size()){
                pq.pop();
            }
        }
        while(ind<T)pq.push({r[ind].s,r[ind].f}),ind++;
        //cout<<pq.size();
        for(int i=B-1; i>=0; i--){
            int M=m;
            if(pq.size()&&pq.top().f>=Y[i])break;
            while(M--&&pq.size()){
                pq.pop();
            }
        }
        //cout<<endl;
        if(pq.empty())e=m;
        else s=m;
    }
    return ( e==T+1 ? -1 : e);
}
#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...