Submission #667039

#TimeUsernameProblemLanguageResultExecution timeMemory
667039mychecksedadRarest Insects (IOI22_insects)C++17
0 / 100
1 ms420 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back void move_inside(int i); void move_outside(int i); int press_button(); int min_cardinality(int n){ set<int> v; for(int i = 0; i < n; ++i){ v.insert(i); move_inside(i); } int ans = n; while(1){ int k = press_button(), m = sqrt(v.size()); vector<bool> in(n, 1); if(k == v.size()){ ans = k; break; }else if(k >= m){ int index = 0; for(int i: v){ move_outside(i); in[i] = 0; int k1 = press_button(); if(k1 != k){ index = i; break; } } for(int x: v) if(in[x]) move_outside(x), in[x] = 0; move_inside(index); in[index] = 1; for(int i: v){ if(i != index){ move_inside(i); int k1 = press_button(); if(k1 > 1){ v.erase(i); } move_outside(i); } } v.erase(index); }else{ for(int i: v){ in[i] = 0; move_outside(i); } int group_num = 0; for(int i: v){ move_inside(i); int k1 = press_button(); in[i] = 1; if(k1 > 1){ move_outside(i); in[i] = 0; }else group_num++; } for(int i: v) if(in[i] == 1) in[i] = 0, move_outside(i); vector<int> removed; for(int i: v){ move_inside(i); int k1 = press_button(); if(k1 == k){ removed.pb(i); move_outside(i); }else in[i] = 1; } if(removed.size() == group_num){ return k; } for(int i: removed) v.erase(i); } for(int x: v) if(!in[x]) move_inside(x); } return ans; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:19:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::set<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |   if(k == v.size()){
      |      ~~^~~~~~~~~~~
insects.cpp:72:22: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   72 |    if(removed.size() == group_num){
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...