Submission #627602

#TimeUsernameProblemLanguageResultExecution timeMemory
627602sofapudenRarest Insects (IOI22_insects)C++17
99.19 / 100
74 ms304 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; srand(12321); while(l <= r){ int m = (l+r)>>1; m-=1; m+=rand()%3; m = max(m,l); m = min(m,r); 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; if(l <= r){ for(auto x : rem)st[x] = 1; for(int i = 0; i < n; ++i){ if(!st[i]){move_outside(i);sz--;} } } } } return cur; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...