제출 #1359256

#제출 시각아이디문제언어결과실행 시간메모리
1359256maya_sRarest Insects (IOI22_insects)C++20
25 / 100
70 ms520 KiB
#include "insects.h"
#include<bits/stdc++.h>
using namespace std;
typedef int ll;

int min_cardinality(int n) {
  vector<ll> u;
  set<ll> s;
  for(ll i = 0; i < n; i++){
    move_inside(i);
    if(press_button() == 2) {
      s.insert(i);
      move_outside(i);
    }
    else u.push_back(i);
  }
  ll c = u.size();
  ll sq = sqrt(c);
  vector<ll> components(n);
  for(ll i: u) move_outside(i), components[i]++;
  for(ll i = 0; i < c; i += sq){
    vector<ll> v;
    for(ll j = i; j < min(c, i + sq); j++) v.push_back(u[j]), move_inside(u[j]);
    vector<ll> r;
    for(auto i: s){
      move_inside(i);
      if(press_button() == 2) {
        for(ll j: v) {
          move_outside(j);
          if(press_button() == 1) {
            move_inside(j);
            components[j]++;
            break;
          }
          move_inside(j);
        }
        r.push_back(i);
      }
      move_outside(i);
    }
    for(ll x: r) s.erase(x);
  }
  ll ans = n;
  for(ll i = 0; i < n; i++) if(components[i]) ans = min(ans, components[i]);
  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...