Submission #658782

#TimeUsernameProblemLanguageResultExecution timeMemory
658782pere_gilRarest Insects (IOI22_insects)C++17
53.16 / 100
188 ms412 KiB
#include "insects.h" #include "bits/stdc++.h" using namespace std; bool in[2005]; int tot_in,dif; bool check(int n, int x){ vector<int> aux; for(int i=0;i<n;i++){ if(in[i]) continue; move_inside(i); if(press_button()>x) move_outside(i); else{ in[i]=true; tot_in++; aux.push_back(i); } if(tot_in==x*dif) return true; } if(tot_in==x*dif) return true; for(int i: aux){ in[i]=false; move_outside(i); tot_in--; } return false; } int min_cardinality(int n) { memset(in,false,sizeof in); tot_in=0; for(int i=0;i<n;i++){ move_inside(i); if(press_button()>1) move_outside(i); else{ in[i]=true; tot_in++; } } dif=tot_in; if(dif==1) return n; int l=1,r=n/dif+1; while(l+1<r){ int med=(l+r)/2; if(check(n,med)) l=med; else r=med; } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...