| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1045643 | Soumya1 | Rarest Insects (IOI22_insects) | C++17 | 34 ms | 944 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
int get_distinct(int n) {
  vector<int> ans = {0};
  move_inside(0);
  for (int i = 1; i < n; i++) {
    move_inside(i);
    if (press_button() != 1) {
      move_outside(i);
    } else {
      ans.push_back(i);
    }
  }
  for (int i : ans) move_outside(i);
  return ans.size();
}
int min_cardinality(int n) {
  int d = get_distinct(n);
  int lo = 1, hi = n / d;
  vector<int> all(n);
  iota(all.begin(), all.end(), 0);
  int total_in = 0;
  auto check = [&](int mid) {
    vector<int> in, out;
    for (int i : all) {
      move_inside(i);
      if (press_button() > mid) {
        out.push_back(i);
        move_outside(i);
      } else {
        in.push_back(i);
      }
    }
    if (total_in + in.size() == d * mid) {
      total_in += in.size();
      all = out;
      return true;
    }
    for (int i : in) move_outside(i);
    all = in;
    return false;
  };
  while (lo < hi) {
    int mid = (lo + hi + 1) >> 1;
    if (check(mid)) lo = mid;
    else hi = mid - 1;
  }
  return lo;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
