답안 #1034826

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1034826 2024-07-25T19:15:13 Z Mr_Husanboy 드문 곤충 (IOI22_insects) C++17
0 / 100
3 ms 432 KB
#include "insects.h"
#include <bits/stdc++.h>
 
using namespace std;
 
#define ff first
#define ss second
#define all(a) (a).begin(), (a).end()
#define ll long long
const int mod = 1000002022;
 
vector<int> state, p;
int n, m; 
vector<vector<int>> g;
template<typename T>
int len(T &a){return a.size();}
 
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
 
void shuffle(vector<int> &a, int n){
  if(n == 1) return;
  random_shuffle(a.begin(), a.begin() + n);
  for(int i = 0; i < n; i ++){
    int aa = rng() % n, bb = rng() % n;
    while(bb == aa) bb = rng() % n;
    swap(a[aa], a[bb]);
  }
}
 
 
int min_cardinality(int n) {
 
  vector<int> v;
  vector<int> done(n);
  for(int i = 0; i < n; i ++){
    move_inside(i);
    if(press_button() == 2){
      move_outside(i);
    }else v.push_back(i), done[i] = 1;
  }
  if(len(v) == 1){
    return n;
  }
  int dis = len(v);
  int l = 1, r = n / dis + 1;

 
  auto check = [&](int m)->bool{
    vector<int> rem;
    vector<int> rem2;
    for(int i = 0; i < n; i ++){
      if(done[i]) continue;
      move_inside(i);
      if(press_button() <= m){
        rem.push_back(i);
      }else{
        move_outside(i);
        rem2.push_back(i);
      }
    }
    if(dis + len(rem) == dis * m){
      for(auto u : rem) done[u] = 1;
    }else{
      for(auto u : rem) move_outside(u);
      // for(auto u : rem2) done[u] = 1;
    }
    return dis + len(rem) == dis * m;
  };

  while(r - l > 1){
    int m = (l + r) / 2;
    if(check(m)){
      l = m;
    }else r = m;
  }
  return l;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Incorrect 3 ms 344 KB Wrong answer.
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Incorrect 3 ms 344 KB Wrong answer.
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 432 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Incorrect 0 ms 344 KB Wrong answer.
7 Halted 0 ms 0 KB -