Submission #1279136

#TimeUsernameProblemLanguageResultExecution timeMemory
1279136nathlol2Rarest Insects (IOI22_insects)C++20
10 / 100
105 ms432 KiB
#include <bits/stdc++.h>
#include "insects.h"
using namespace std;

int min_cardinality(int n){
  bool v[n];
  memset(v, 0, sizeof v);
  int t = 0, id = 0;
  while(1){
    vector<int> a;
    for(int i = 0;i<n;i++){
      if(v[i]) continue;
      move_inside(i);
      if(press_button() > 1){
        move_outside(i);
      }else{
        a.push_back(i);
      }
    }
    for(auto x : a) v[x] = 1, move_outside(x);
    if(id == 0){
      t = a.size();
    }
    if(t < 400) break;
    if(a.size() < t){
      return id;
    }
    ++id;
  }
  if(t == n) return 1;
  int ans = INT_MAX, cnt = 0;
  for(int i = 0;i<n;i++){
    if(v[i]) continue;
    ++cnt;
    move_inside(i);
    int ts = 1;
    for(int j = i + 1;j<n;j++){
      if(v[j]) continue;
      move_inside(j);
      if(press_button() > 1){
        v[j] = 1;
        ++ts;
      }
      move_outside(j);
    }
    move_outside(i);
    ans = min(ans, ts);
  }
  if(cnt < t) return 1;
  return ans + 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...