Submission #1212315

#TimeUsernameProblemLanguageResultExecution timeMemory
1212315nerrrminRarest Insects (IOI22_insects)C++20
99.56 / 100
15 ms440 KiB
#include "insects.h" #include<bits/stdc++.h> #define pb push_back using namespace std; int n; int cnt; int use[5000]; vector < int > fosure; bool check(int x) { vector < int > g; int put = fosure.size(); for (int i = 0; i < n; ++ i) { if(!use[i])continue; g.pb(i); move_inside(i); if(press_button() > x) { move_outside(i); g.pop_back(); } else put ++; } if(put == cnt * x) { for (auto x: g) { fosure.pb(x); use[x] = 0; } } else { for (int i = 0; i < n; ++ i) use[i] = 0; for (auto x: g) use[x] = 1; for (auto x: g) move_outside(x); } return (put == cnt * x); } int min_cardinality(int N) { n = N; for (int i = 0; i < n; ++ i) use[i] = 1; vector < int > g; for (int i = 0; i < n; ++ i) { g.pb(i); move_inside(i); if(press_button() == 2) { move_outside(i); g.pop_back(); } } cnt = g.size(); for (auto x: g) move_outside(x); int l = 0, r = n/cnt, mid, ans; while(l <= r) { int mid = (l + r)/2; if(check(mid)) { ans = mid; l = mid + 1; } else r = mid - 1; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...