제출 #1235601

#제출 시각아이디문제언어결과실행 시간메모리
1235601Muhammad_Aneeq드문 곤충 (IOI22_insects)C++17
25 / 100
2087 ms5428 KiB
#include "insects.h" #include <vector> #include <bitset> #include <map> #include <set> #include <iostream> using namespace std; int const sz=2010; vector<bool>ind(sz,0); map<vector<bool>,int>seen; int ask() { if (seen.find(ind)==seen.end()) seen[ind]=press_button(); return seen[ind]; } int min_cardinality(int N) { seen={}; int colors=0; for (int i=0;i<N;i++) { ind[i]=1; move_inside(i); colors++; if (ask()>1) { ind[i]=0; move_outside(i); colors--; } } int cnt=colors; int st=1,en=N/colors+1; while (st+1<en) { set<int>rem; int mid=(st+en)/2; for (int i=N-1;i>=0;i--) { if (ask()<=mid) break; if (ind[i]==0) continue; int z=ask(); ind[i]=0; move_outside(i); int y=ask(); cnt--; if (z!=y) rem.insert(i); } for (int i=0;i<N;i++) { if (cnt==colors*mid) break; if (ind[i]==0&&rem.find(i)==rem.end()) { ind[i]=1; cnt++; move_inside(i); if (ask()>mid) { move_outside(i); cnt--; ind[i]=0; } } } if (cnt==colors*mid) st=mid; else en=mid; } return st; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...