Submission #1078100

#TimeUsernameProblemLanguageResultExecution timeMemory
1078100Muhammad_AneeqRarest Insects (IOI22_insects)C++17
53.01 / 100
602 ms29444 KiB
void move_inside(int i); void move_outside(int i); int press_button(); #include <iostream> #include <vector> #include <map> using namespace std; map<vector<int>,int>d; vector<int>ind; int ask() { if (d.find(ind)!=d.end()) return d[ind]; d[ind]=press_button(); return d[ind]; } int min_cardinality(int N) { int colors=0; for (int i=0;i<N;i++) { move_inside(i); ind.push_back(i); if (ask()==2) { move_outside(i); ind.pop_back(); } else colors++; } if (colors==1) return N; for (auto i:ind) move_outside(i); int st=1,en=N/colors+1; while (st+1<en) { int mid=(st+en)/2; ind={}; for (int i=0;i<N&&ind.size()<colors*mid;i++) { move_inside(i); ind.push_back(i); if (ask()>mid) { move_outside(i); ind.pop_back(); } } if (ind.size()==mid*colors) st=mid; else en=mid; for (auto i:ind) move_outside(i); } return st; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:41:31: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   41 |   for (int i=0;i<N&&ind.size()<colors*mid;i++)
      |                     ~~~~~~~~~~^~~~~~~~~~~
insects.cpp:51:17: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   51 |   if (ind.size()==mid*colors)
      |       ~~~~~~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...