제출 #870440

#제출 시각아이디문제언어결과실행 시간메모리
870440imarn드문 곤충 (IOI22_insects)C++17
99.95 / 100
30 ms600 KiB
#include<bits/stdc++.h> #include "insects.h" #define f first #define s second #define pb push_back using namespace std; int siz[2001]{0}; int min_cardinality(int N) { vector<int>vec; int vis[2001]={0}; int use[2001]={0}; move_inside(0);vis[0]=1; int sz=1; for(int i=1;i<N;i++){ if(vis[i])continue; move_inside(i); if(press_button()==1){ vis[i]=1;sz++; } else move_outside(i); } int l=1,r=N/sz; int mx=sz; int ans=1; while(l<=r){ int m=(l+r)>>1; int cnt=0; for(int i=0;i<N;i++){ if(cnt==mx*(m-ans))break; if(!vis[i]){ move_inside(i); if(press_button()<=m)cnt++,use[i]=1; else move_outside(i),vis[i]=1,use[i]=1; } } if(cnt==mx*(m-ans)){ l=m+1;ans=m; for(int i=0;i<N;i++)if(use[i]&&!vis[i])vis[i]=!vis[i],use[i]=0; for(int i=0;i<N;i++)if(vis[i]&&use[i])vis[i]=!vis[i]; } else { r=m-1; for(int i=0;i<N;i++)if(use[i]&&!vis[i])move_outside(i); }memset(use,0,sizeof use); }return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...