Submission #686449

#TimeUsernameProblemLanguageResultExecution timeMemory
68644979brue드문 곤충 (IOI22_insects)C++17
99.89 / 100
69 ms424 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; int n, k, cnt; vector<int> vec; bool isFirst[2002], inside[2002]; bool dontSee[2002]; int min_cardinality(int N){ n = N; /// 종류 알아내기 for(int i=0; i<n; i++){ move_inside(i); if(press_button() == 2) move_outside(i); else vec.push_back(i), isFirst[i] = 1, inside[i] = 1; } k = cnt = (int)vec.size(); int l = 2, r = N/k, ans = 1; while(l<=r){ int m = (l*199+r*201)/400; vector<int> setIn, setOut; for(int i=0; i<n; i++){ if(inside[i] || dontSee[i]) continue; move_inside(i); if(press_button() <= m) setIn.push_back(i); else move_outside(i), setOut.push_back(i); } cnt += (int)setIn.size(); if(cnt == k * m){ ans = m, l = m+1; for(int x: setIn) dontSee[x] = 1; } else{ r = m-1, cnt -= (int)setIn.size(); for(int x: setIn) move_outside(x); for(int x: setOut) dontSee[x] = 1; } } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...