제출 #631977

#제출 시각아이디문제언어결과실행 시간메모리
631977TimDee드문 곤충 (IOI22_insects)C++17
25 / 100
360 ms312 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int min_cardinality(int n) { vector<int> vis(n,0); vector<int> paiu; int unique=0; for (int i=0; i<n; ++i) { move_inside(i); int x=press_button(); if (x==2) move_outside(i); unique+=x==1; vis[i]=x==1; if (x==1) paiu.push_back(i); } for (auto x:paiu) move_outside(x); paiu.clear(); //int sz=sqrt(n); if (unique>=100) { int op=0; int last; do { ++op; last=unique; unique=0; for (int i=0; i<n; ++i) { if (vis[i]) continue; move_inside(i); int x=press_button(); if (x==2) move_outside(i); unique+=x==1; vis[i]=x==1; if (x==1) paiu.push_back(i); } for (auto x:paiu) move_outside(x); paiu.clear(); //cout<<op<<' '<<unique<<' '<<last<<'\n'; } while (unique==last); return op; } else { vector<int> vis(n,0); vector<int> paiu; for (int i=0; i<n; ++i) { if (vis[i]) continue; paiu.push_back(1); move_inside(i); for (int j=i+1; j<n; ++j) { if (vis[j]) continue; move_inside(j); int cnt=press_button(); if (cnt==2) { paiu[paiu.size()-1]++; vis[j]=1; } move_outside(j); } } int ans=1e9; for (auto x:paiu) ans=min(ans,x); return ans; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...