Submission #639043

#TimeUsernameProblemLanguageResultExecution timeMemory
639043dxz05Rarest Insects (IOI22_insects)C++17
47.50 / 100
268 ms604 KiB
#include "insects.h"
#include <bits/stdc++.h>

using namespace std;

int min_cardinality(int N) {
    vector<int> in;
    for (int i = 0; i < N; i++) {
        in.push_back(i);
        move_inside(i);
        if (press_button() >= 2) {
            in.pop_back();
            move_outside(i);
        }
    }

    int diff = (int)in.size();

    function<bool(int)> check = [&](int x) {
        for (int i : in) move_outside(i);
        in.clear();

        for (int i = 0; i < N; i++) {
            in.push_back(i);
            move_inside(i);
            if (press_button() > x) {
                in.pop_back();
                move_outside(i);
            }
        }

        return (int)in.size() == x * diff;
    };

    int l = 1, r = N;
    while (l <= r){
        int m = (l + r) >> 1;
        if (check(m)){
            l = m + 1;
        } else {
            r = m - 1;
        }
    }

    return r;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...