Submission #627802

#TimeUsernameProblemLanguageResultExecution timeMemory
627802tutisRarest Insects (IOI22_insects)C++17
10 / 100
277 ms1208 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; pair<int, int> min_cardinality(vector<int> x) { if (x.size() == 1) return {1, 1}; if (x.empty()) return {0, 0}; vector<int>v; for (int i : x) { v.push_back(i); move_inside(i); int k = press_button(); if (k == 2) { v.pop_back(); move_outside(i); } } int cnt = v.size(); if (cnt * 2 > x.size()) return {1, cnt}; set<int> X(v.begin(), v.end()); for (int i : v) move_outside(i); v.clear(); reverse(x.begin(), x.end()); for (int i : x) { v.push_back(i); move_inside(i); int k = press_button(); if (k == 2) { v.pop_back(); move_outside(i); } } for (int i : v) move_outside(i); set<int> Y(v.begin(), v.end()); for (int i : X) { if (Y.find(i) != Y.end()) return {1, cnt}; } set<int>S(x.begin(), x.end()); for (int i : X) S.erase(i); for (int i : Y) S.erase(i); pair<int, int>ans = min_cardinality(vector<int>(S.begin(), S.end())); if (ans.second != (int)v.size()) return {2, (int)v.size()}; ans.first += 2; return ans; } int min_cardinality(int N) { vector<int>v; for (int i = 0; i < N; i++) v.push_back(i); return min_cardinality(v).first; }

Compilation message (stderr)

insects.cpp: In function 'std::pair<int, int> min_cardinality(std::vector<int>)':
insects.cpp:23:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |     if (cnt * 2 > x.size())
      |         ~~~~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...