Submission #627409

#TimeUsernameProblemLanguageResultExecution timeMemory
627409sofapudenRarest Insects (IOI22_insects)C++17
99.89 / 100
66 ms424 KiB
#include "insects.h" #include<bits/stdc++.h> using namespace std; int min_cardinality(int n) { int am = 1; move_inside(0); vector<int> st(n,0); st[0] = 1; int sz = 1; for(int i = 1; i < n; ++i){ move_inside(i); if(press_button() != 1)move_outside(i); else am++, st[i] = 1, sz++; } int l = 2, r = n/am, cur = 1; while(l <= r){ int m = (l+r)>>1; vector<int> rem; for(int i = 0; i < n; ++i){ if(st[i])continue; sz++; move_inside(i); if(press_button() > m){ rem.push_back(i); sz--; move_outside(i); } } if(sz == am*m){ for(int i = 0; i < n; ++i)st[i] = 1; for(auto x : rem)st[x] = 0; cur = m; l = m + 1; } else{ r = m - 1; for(auto x : rem)st[x] = 1; for(int i = 0; i < n; ++i){ if(!st[i]){move_outside(i);sz--;} } r = min(r,n/am); } } return cur; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...