Submission #718911

#TimeUsernameProblemLanguageResultExecution timeMemory
718911baojiaopisu드문 곤충 (IOI22_insects)C++17
50 / 100
203 ms396 KiB
#include "insects.h" #include <cassert> #include <cstdio> #include <algorithm> #include <map> #include <set> #include <string> #include <vector> using namespace std; #define pb push_back int min_cardinality(int n) { vector<int> curr; for(int i = 0; i < n; i++) { move_inside(i); int x = press_button(); if(x > 1) move_outside(i); else curr.pb(i); } int num = curr.size(); int l = 1, r = n / curr.size(); for(auto x : curr) move_outside(x); curr.clear(); vector<int> q; for(int i = 0; i < n; i++) q.pb(i); int d = 0, ans = 0; while(l <= r) { int mid = (l + r) >> 1; vector<int> nxt_q; vector<int> cc = curr; vector<int> t; int cnt = 0; for(int i = 0; i < q.size(); i++) { move_inside(q[i]); int x = press_button(); if(x > mid) move_outside(q[i]), nxt_q.pb(q[i]); else curr.pb(q[i]), t.pb(q[i]), ++cnt; } if(cnt == (mid - d) * num) { d = mid; curr.clear(); q = nxt_q; ans = mid; l = mid + 1; } else { for(auto x : t) move_outside(x); curr = cc; r = mid - 1; } } return ans; }

Compilation message (stderr)

insects.cpp: In function 'int min_cardinality(int)':
insects.cpp:38:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     for(int i = 0; i < q.size(); i++) {
      |                    ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...