Submission #1232689

#TimeUsernameProblemLanguageResultExecution timeMemory
1232689kaltspielerhy드문 곤충 (IOI22_insects)C++20
0 / 100
99 ms408 KiB
#include <bits/stdc++.h> #include "insects.h" using namespace std; int AJOUTER = 0; int RETIRER = 1; bool superiorK(int k, int nbTypes, vector<bool>& ensemble, int N, int taille) { vector<int> objets; vector<int> oublies; for (int i = 0; i < N; i++) { if (!ensemble[i]) { move_inside(i); if (press_button() > k) { move_outside(i); oublies.push_back(i); } else { ensemble[i] = true; objets.push_back(i); taille++; } } } if (taille < k*nbTypes) { for (int i : objets) { move_outside(i); ensemble[i] = false; } for (int i : oublies) ensemble[i] = true; return false; } return true; } int min_cardinality(int N) { vector<bool> ensemble(N, false); int nbTypes = 0; for (int i = 0; i < N; i++) { move_inside(i); if (press_button() != 1) { move_outside(i); } else { nbTypes++; // ensemble[i] = true; } } int debut = 1, fin = ((N+nbTypes-1)/nbTypes); int taille = 0; while (debut+1 < fin) { int mid = (debut+fin)*0.46; if (superiorK(mid, nbTypes, ensemble, N, taille)) { debut = mid; taille = mid*nbTypes; } else { fin = mid-1; } } if (debut != fin && superiorK(debut+1, nbTypes, ensemble, N, taille)) return debut+1; return debut; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...