Submission #1183787

#TimeUsernameProblemLanguageResultExecution timeMemory
1183787gygRarest Insects (IOI22_insects)C++20
91.09 / 100
48 ms428 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
#define vec vector 

int cnt;
int sz;
void in(int i) {
    cnt++; assert(cnt <= 40000);
    move_inside(i);
    sz++;
}
void out(int i) {
    move_outside(i);
    sz--;
}
int qry() {
    return press_button();
}

int min_cardinality(int n) {
    vec<int> rm;
    for (int i = 0; i < n; i++) {
        in(i);
        int x = qry();
        if (x == 1) continue;
        out(i);
        rm.push_back(i);
    }
    int c = sz;
    
    for (int k = 2; k <= n + 1; k++) {
        // for (int i : rm) cout << i << " ";
        // cout << '\n';
        
        random_shuffle(rm.begin(), rm.end());
        vec<int> nw;

        for (int i : rm) {
            if (sz == k * c) {
                nw.push_back(i);
                continue;
            }
            in(i);
            int x = qry();
            if (x == k) continue;
            out(i);
            nw.push_back(i);
        }

        rm = nw;
        if (sz != k * c) return k - 1;
    }
    assert(false); return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...