제출 #658790

#제출 시각아이디문제언어결과실행 시간메모리
658790pere_gil드문 곤충 (IOI22_insects)C++17
0 / 100
49 ms300 KiB
#include "insects.h" #include "bits/stdc++.h" using namespace std; bool in[2005],bad[2005]; int tot_in,dif; bool check(int n, int x){ vector<int> act,out; for(int i=0;i<n;i++){ if(in[i] || bad[i]) continue; move_inside(i); if(press_button()>x) out.push_back(i); else act.push_back(i); if(tot_in+(int)act.size()==dif*x) break; } if(tot_in+(int)act.size()==dif*x){ tot_in+=act.size(); for(int i: act) in[i]=true; for(int i: out) move_outside(i); return true; } for(int i: act) move_outside(i); for(int i: out){ move_outside(i); bad[i]=true; } return false; } int min_cardinality(int n) { memset(in,false,sizeof in); memset(bad,false,sizeof bad); 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...