제출 #1356207

#제출 시각아이디문제언어결과실행 시간메모리
1356207vjudge1드문 곤충 (IOI22_insects)C++20
50 / 100
43 ms452 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

void dbg() { cout << "\n"; }
template<typename H, typename... T>
void dbg(H h, T... t) {
    cout << h << " ";
    dbg(t...);
}

#include "insects.h"
const int N = 2020;
int mark[N];

int min_cardinality(int n) {
    vector<int> v;
    int k = 0;
    for (int i = 0; i < n; i++) {
        move_inside(i);
        if (press_button() > 1) {
            move_outside(i);
        } else {
            v.push_back(i);
            k++;
        }
    }
    for (auto x : v) move_outside(x);
    v.clear();
    int l = 1, r = n/k, ans = 0;
    while (l <= r) {
        int mid = (l+r)/2;
        for (int i = 0; i < n; i++) {
            if (mark[i]) continue;
            move_inside(i);
            if (press_button() > mid) {
                move_outside(i);
            } else {
                mark[i] = 1;
                v.push_back(i);
            }
        }
        if (v.size() == k*mid) {
            l = mid+1, ans = mid;
        } else {
            r = mid-1;
            for (int i = 0; i < n; i++) mark[i] = 0;
            for (auto x : v) move_outside(x);
            v.clear();
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...