제출 #1223791

#제출 시각아이디문제언어결과실행 시간메모리
1223791bangan드문 곤충 (IOI22_insects)C++20
50 / 100
56 ms436 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();
    }

    if (unq == 1) return N;

    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 l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...