제출 #1241117

#제출 시각아이디문제언어결과실행 시간메모리
1241117erering로봇 (IOI13_robots)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
#include "robots.h"
using namespace std;
#define pb push_back
int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) {
    sort(X,X+A);
    sort(Y,Y+B);
    int l=1,r=T+1;
    vector<pair<int,int>> toys;
    for(int i=0;i<T;i++){
        toys.pb({S[i],W[i]});
    }
    sort(toys.begin(),toys.end());
    while(l<r){
        int mid=(l+r)/2;
        set<pair<int,int>> st;
        for(int i=0;i<A;i++)st.insert({X[i],mid});
        vector<int> rem;
        for(int i=toys.size()-1;i>=0;i--){
            auto it=st.lower_bound({toys[i].second+1,-1});
            if(it==st.end()){
                rem.pb(toys[i].first);
                continue;
            }
            pair<int,int> p=*it; p.second--;
            st.erase(it);
            if(p.second>0)st.insert(p);
        }
        int ri=B-1;
        bool flag=1;
        for(int i=0;i<rem.size();i++){
            if(i>0 && i%mid==0)ri--;
            if(ri<0 || rem[i]>=Y[ri]){
                flag=0;
                break;
            }
        }
        if(flag)r=mid;
        else l=mid+1;
    }
    if(r==T+1)return -1;
    else 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...