Submission #731461

#TimeUsernameProblemLanguageResultExecution timeMemory
731461alextodoranRarest Insects (IOI22_insects)C++17
0 / 100
11 ms208 KiB
/** _ _ __ _ _ _ _ _ _ |a ||t ||o d | |o | | __ _| | _ | __| _ | | __ |/_ | __ /__\ / _\| **/ #include <bits/stdc++.h> using namespace std; typedef long long ll; const int E_MAX = 11; void move_inside (int i); void move_outside (int i); int press_button (); int min_cardinality (int N) { bool in[N]; fill(in, in + N, false); int dist = 0; for (int i = 0; i < N; i++) { move_inside(i); if (press_button() > 1) { move_outside(i); } else { dist++; in[i] = true; } } if (dist == N) { return 1; } for (int i = 0; i < N; i++) { if (in[i] == true) { move_outside(i); in[i] = false; } } int l = 1, r = N / dist; while (l < r) { int k = (l + r + 1) / 2; int cnt = 0; for (int i = 0; i < N; i++) { if (in[i] == false) { move_inside(i); if (press_button() > k) { move_outside(i); } else { in[i] = true; cnt++; } } } if (cnt == dist * k) { l = k; } else { r = k - 1; for (int i = 0; i < N; i++) { if (in[i] == true) { move_outside(i); in[i] = false; } } } } return l; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...