제출 #1045662

#제출 시각아이디문제언어결과실행 시간메모리
1045662Soumya1드문 곤충 (IOI22_insects)C++17
99.89 / 100
36 ms696 KiB
#include "insects.h"
#include <bits/stdc++.h>
using namespace std;
int min_cardinality(int n) {
  vector<int> all;
  int d = 1;
  move_inside(0);
  for (int i = 1; i < n; i++) {
    move_inside(i);
    if (press_button() != 1) {
      move_outside(i);
      all.push_back(i);
    } else {
      d++;
    }
  }
  int lo = 1, hi = n / d;
  int total_in = d;
  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:30:30: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   30 |     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...