제출 #791154

#제출 시각아이디문제언어결과실행 시간메모리
791154Ronin13Robots (IOI13_robots)C++17
100 / 100
1348 ms24684 KiB
#include "robots.h"
#include <bits/stdc++.h>
#define ll long long 
#define ull unsigned ll
#define f first
#define s second
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pb push_back
#define epb emplace_back
using namespace std;

int putaway(int A, int B, int T, int x[], int y[], int w[], int s[]) {
    vector <pii> vv;
    sort(x, x + A);
    sort(y, y + B);
    for(int i= 0; i < A; i++){
        vv.pb({x[i], -1});
    }
    for(int i = 0; i < T; i++){
        vv.pb({w[i], s[i]});
    }
    sort(vv.begin(), vv.end());
    int l = 0, r = T + 1;
    while(l + 1 < r){
        int mid = (l + r) / 2;
        priority_queue <int> pq;
        for(auto to : vv){
            int x = to.s;
            if(x != -1) pq.push(x);
            else{
                int cur = 0;
                while(!pq.empty() && cur < mid){
                    pq.pop();
                    cur++;
                }
            }
        }
        for(int i = B - 1; i >= 0; i--){
            int cur = 0;
            while(cur < mid && !pq.empty()){
                int x = pq.top();
                if(x >= y[i]) break;
                pq.pop();
                cur++;
            }
        }
        pq.empty() ? r = mid : l = mid;
    }
    if(r == T + 1) r = -1;
    return r;
}
#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...