Submission #597697

#TimeUsernameProblemLanguageResultExecution timeMemory
597697snasibov05Robots (IOI13_robots)C++14
28 / 100
1476 ms22908 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[]) {

    int ans = -1;
    sort(x, x + a);
    sort(y, y + b);
    reverse(y, y + b);

    vector<pair<int, int>> v;
    for (int i = 0; i < t; ++i) v.push_back({w[i], s[i]});
    sort(v.begin(), v.end());

    int l = 1, r = t;
    while (l <= r){
        int mid = (l + r) / 2;

        int pt = 0;
        priority_queue<int, vector<int>, greater<int>> pq;
        for (int i = 0; i < a; ++i){
            while (pt < t && v[pt].first < x[i]) pq.push(v[pt++].second);
            for (int j = 0; j < mid; ++j){
                if (pq.empty()) break;
                pq.pop();
            }
        }

        while (pt < t) pq.push(v[pt++].second);

        for (int i = 0; i < b; ++i){
            for (int j = 0; j < mid; ++j){
                if (pq.empty() || pq.top() >= y[i]) break;
                pq.pop();
            }
        }


        if (pq.empty()) ans = mid, r = mid - 1;
        else l = mid + 1;
    }

    return ans;
}
#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...