제출 #1356300

#제출 시각아이디문제언어결과실행 시간메모리
1356300whally드문 곤충 (IOI22_insects)C++20
0 / 100
9 ms416 KiB
#include <bits/stdc++.h>
#include "insects.h"
using namespace std;
int n,t;
int ch[2010];

int min_cardinality(int N)
{
  vector<int> col;
  n = N;
  for (int i = 0; i < n; i++){
    t++;
    move_inside(i);
    col.push_back(i);
    int res = press_button();
    if (res > 1){
      move_outside(i);
      col.pop_back();
      t--;
    }
  }
  if (col.size() == n) return 1;
  if (col.size() == 1) return n;

  for (int x : col) move_outside(x);

  int l = 1, r = n/t;
  int pre = 0;
  vector<int> now;
  while (l < r){
    int mid = (l+r+1)/2;
    int cnt = pre;
    while (press_button() > mid){
      cnt--;
      ch[now.back()] = 0;
      now.pop_back();
      move_outside(now.back());
    }
    int st = 0;
    if (!now.empty()) st = now.back()+1;
    for (int i = st; i < n; i++){
      if (ch[i]) continue;
      cnt++;
      ch[i] = 1;
      now.push_back(i);
      move_inside(i);
      int res = press_button();
      if (res > mid){
        cnt--;
        ch[i] = 0;
        now.pop_back();
        move_outside(i);
      }
      if (cnt == mid*t) break;
    }
    pre = cnt;
    if (cnt == mid*t){
      l = mid;
    }
    else{
      r = mid-1;
    }
  }

  return l;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…