Submission #786138

#TimeUsernameProblemLanguageResultExecution timeMemory
786138khshgRarest Insects (IOI22_insects)C++17
10 / 100
67 ms336 KiB
#include"insects.h" #include<bits/stdc++.h> using namespace std; int min_cardinality(int N) { vector<int> Ls{0}, cnt(N, 1); move_inside(0); set<int> ins{0}; for(int i = 1; i < N; ++i) { move_inside(i); ins.insert(i); int ks = press_button(); if(ks == 1) { Ls.push_back(i); continue; } int tl = 0, tr = (int)Ls.size(); while(tl < tr) { int tm = (tl + tr) / 2; for(int j = tl; j <= tm; ++j) { if(ins.find(Ls[j]) != end(ins)) { move_outside(Ls[j]); ins.erase(Ls[j]); } } if(press_button() == 2) { tl = tm + 1; } else { tr = tm; tm = (tl + tr) / 2; for(int j = tm + 1; j <= tr; ++j) { if(ins.insert(Ls[j]).second) move_inside(Ls[j]); } } } ++cnt[Ls[tl]]; for(auto& u : Ls) if(ins.insert(u).second) move_inside(u); ins.erase(i); move_outside(i); } int ans = 0x3f3f3f3f; for(auto& u : Ls) ans = min(ans, cnt[u]); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...