Submission #1223789

#TimeUsernameProblemLanguageResultExecution timeMemory
1223789bangan드문 곤충 (IOI22_insects)C++20
25 / 100
55 ms420 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

// mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

int n;
int unq;

bool ok(int k) {
    vector<int> in;
    for (int i=0; i<n; i++) {
        move_inside(i);
        if (press_button() > k) move_outside(i);
        else in.pb(i);
    }
    bool ret = unq * k == in.size();
    while (!in.empty()) {
        move_outside(in.back());
        in.pop_back();
    }
    return ret;
}

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

    unq = in.size();
    while (!in.empty()) {
        move_outside(in.back());
        in.pop_back();
    }

    n = N;
    int l = 1, r = 1000 + 4;
    while (l != r) {
        int mid = (l+r+1) / 2;
        ok(mid) ? l = mid : r = mid - 1;
    }
    return r;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...