Submission #1320487

#TimeUsernameProblemLanguageResultExecution timeMemory
1320487BigBadBully드문 곤충 (IOI22_insects)C++20
47.51 / 100
65 ms536 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int min_cardinality(int n) { int dst = 0; set<int> dists; { set<int> hier; for (int i = 0; i < n; i++) { move_inside(i); int val = press_button(); if(val>1) move_outside(i); else dst++,dists.insert(i),hier.insert(i); } for(int x: hier) if(!dists.count(x)) move_outside(x); } vector<int> lst(n,0); function<bool(int)> check = [&](int x) { if(x>n)return true; if(x==0)return false; int sz = dst; set<int> hier; for(int i = 0; i< n; i++) { if(dists.count(i) || lst[i]>=x)continue; move_inside(i); int val = press_button(); if(val>x) move_outside(i),lst[i] = max(lst[i],x); else sz++,hier.insert(i); } for(int y: hier) if(!dists.count(y)) move_outside(y); return sz < x*dst; }; int l = 1,r = n/dst; while(r-l) { int mid = l+r+1>>1; if(check(mid)) r = mid-1; else l = mid; } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...