제출 #1045643

#제출 시각아이디문제언어결과실행 시간메모리
1045643Soumya1드문 곤충 (IOI22_insects)C++17
99.78 / 100
34 ms944 KiB
#include "insects.h" #include <bits/stdc++.h> using namespace std; int get_distinct(int n) { vector<int> ans = {0}; move_inside(0); for (int i = 1; i < n; i++) { move_inside(i); if (press_button() != 1) { move_outside(i); } else { ans.push_back(i); } } for (int i : ans) move_outside(i); return ans.size(); } int min_cardinality(int n) { int d = get_distinct(n); int lo = 1, hi = n / d; vector<int> all(n); iota(all.begin(), all.end(), 0); int total_in = 0; auto check = [&](int mid) { vector<int> in, out; for (int i : all) { move_inside(i); if (press_button() > mid) { out.push_back(i); move_outside(i); } else { in.push_back(i); } } if (total_in + in.size() == d * mid) { total_in += in.size(); all = out; return true; } for (int i : in) move_outside(i); all = in; return false; }; while (lo < hi) { int mid = (lo + hi + 1) >> 1; if (check(mid)) lo = mid; else hi = mid - 1; } return lo; }

컴파일 시 표준 에러 (stderr) 메시지

insects.cpp: In lambda function:
insects.cpp:35:30: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   35 |     if (total_in + in.size() == d * mid) {
      |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...