Submission #1029072

#TimeUsernameProblemLanguageResultExecution timeMemory
102907242kangarooRarest Insects (IOI22_insects)C++17
99.79 / 100
44 ms1028 KiB
#include "insects.h" #include "bits/stdc++.h" using namespace std; int min_cardinality(int N) { set<int> inside, outside; for (int i = 0; i < N; ++i) { move_inside(i); if (press_button() > 1) { outside.insert(i); move_outside(i); } else { inside.insert(i); } } int k = inside.size(); int l = 1, r = N/k + 1; while (l + 1 < r) { int m = (l + r + 1)/2; set<int> nIn, nOut; for (auto e: outside) { move_inside(e); if (press_button() > m) { nOut.insert(e); move_outside(e); } else nIn.insert(e); } if ((inside.size() + nIn.size()) == m*k) { l = m; outside = nOut; inside.insert(nIn.begin(), nIn.end()); } else { r = m; for (auto e: nIn) { move_outside(e); } outside = nIn; } } return l; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:29:36: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   29 |   if ((inside.size() + nIn.size()) == m*k) {
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...