# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
764445 | raysh07 | Rarest Insects (IOI22_insects) | C++17 | 88 ms | 336 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 min_cardinality(int n) {
vector <int> curr;
int ans = -1;
for (int i = 0; i < n; i++) curr.push_back(i);
int last = -1;
srand('c' + 'h' + 'o' + 'd' + 'u' + 'l' + 'a');
while (true){
ans++;
if (curr.size() == 0) break;
random_shuffle(curr.begin(), curr.end());
vector <int> ok = curr;
vector <int> pos;
while (ok.size()){
int i = ok.back();
ok.pop_back();
move_inside(i);
pos.push_back(i);
int x = press_button();
if (x != ans + 1){
pos.pop_back();
move_outside(i);
}
if (last != -1 && pos.size() == last) break;
}
if (last != -1 && pos.size() != last) break;
// cout << pos.size() << "\n";
set <int> holy;
for (auto i : pos) holy.insert(i);
vector <int> nc;
for (auto i : curr) if (holy.find(i) == holy.end()) nc.push_back(i);
curr = nc;
last = pos.size();
if (last == 1) return n;
}
return ans;
}
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... |