Submission #1286289

#TimeUsernameProblemLanguageResultExecution timeMemory
1286289lopkusRarest Insects (IOI22_insects)C++20
0 / 100
1 ms332 KiB
#include <bits/stdc++.h> #include "insects.h" std::vector<int> added; void add(int i) { added.push_back(i); move_inside(i); } void del(int i) { for(int j = 0; j < added.size(); j++) { if(added[j] == i) { added.erase(added.begin() + j); break; } } move_outside(i); } int get() { return press_button(); } void del_all() { for(auto x : added) { del(x); } added.clear(); } int min_cardinality(int n) { int s = std::sqrt(n); int cnt = 0; std::vector<int> vec; for(int i = 0; i < n; i++) { add(i); if(get() == 1) { cnt += 1; vec.push_back(i); } else { del(i); } } del_all(); if(cnt <= s) { int ans = n + 1; for(auto x : vec) { add(x); int occ = 1; for(int i = 0; i < n; i++) { if(i == x) { continue; } add(i); if(get() == occ + 1) { occ += 1; } else { del(i); } } ans = std::min(ans, occ); del_all(); } return ans; } else { std::vector<int> was(n); for(int occ = 1; occ <= s; occ++) { int all = 0; for(int i = 0; i < n; i++) { if(was[i]) { continue; } add(i); if(get() == occ) { all += 1; was[i] = 1; } else { del(i); } } if(cnt != all) { del_all(); return occ - 1; } } } }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:93:1: warning: control reaches end of non-void function [-Wreturn-type]
   93 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...