Submission #1233925

#TimeUsernameProblemLanguageResultExecution timeMemory
1233925trimkusRarest Insects (IOI22_insects)C++20
10 / 100
99 ms436 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
int min_cardinality(int N) {
    vector<int> ord(N);
    iota(begin(ord), end(ord), 0);
    mt19937 rng(0);
    shuffle(begin(ord), end(ord), rng);
    vector<bool> vis(N);
    vector<int> siz;
    int done = 0;
    
    while (done < N) {
      int i = 0;
      while (vis[ord[i]]) i += 1;
      int sz = 1;
      move_inside(ord[i]);
      vis[ord[i]] = 1;
      vector<int> inside{ord[i]};
      for (int j = i + 1; j < N; ++j) {
        if (vis[ord[j]]) continue;
        move_inside(ord[j]);
        int r = press_button();
        // cout << sz << " " << r << "\n";
        if (r == sz) move_outside(ord[j]);
        else {
          inside.push_back(ord[j]);
          assert(r == sz + 1);
          sz += 1;
          vis[ord[j]] = 1;
        }
      }
      done += sz;
      siz.push_back(sz);
      while (inside.size()) {
        move_outside(inside.back());
        inside.pop_back();
      }
    }
    sort(begin(siz), end(siz));
    return siz[0];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...