답안 #1034439

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1034439 2024-07-25T13:50:40 Z Mr_Husanboy 드문 곤충 (IOI22_insects) C++17
0 / 100
234 ms 344 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) {
  int dis = 0;
  vector<int> v;
  vector<int> done(n);
  for(int i = 0; i < n; i ++){
    move_inside(i);
    if(press_button() == 2){
      move_outside(i);
      continue;
    }
    v.push_back(i);
  }
  dis = len(v);
  int lim = sqrt(n) + 1;
  if(dis <= lim){
    for(auto u : v){
      move_outside(u);
      done[u] = 1;
    }
    int ans = n;
    for(auto u : v){
      int cnt = 1;
      move_inside(u);
      for(int i = 0; i < n; i ++){
        if(done[i]) continue;
        move_inside(i);
        if(press_button() == 2){
          done[i] = 1;
          cnt ++;
        }
        move_outside(i);
      }
      move_outside(u);
      ans = min(ans, cnt);
    }
    return ans;
  }
  int ans = 0;
  //cout << dis << endl;
  while(true){
    ans ++;
    for(auto u : v){
      move_inside(u);
      done[u] = 1;
    }

    v.clear();
    for(int i = 0; i < n;  i++){
      if(done[i]) continue;
      move_inside(i);
      if(press_button() == 2){
        move_outside(i); continue;
      }
      v.push_back(i);
    }
    if(len(v) != dis){
      break;
    }
  } 

  return ans;
}
# 결과 실행 시간 메모리 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 1 ms 344 KB Output is correct
6 Correct 3 ms 344 KB Output is correct
7 Correct 2 ms 344 KB Output is correct
8 Correct 5 ms 344 KB Output is correct
9 Correct 7 ms 344 KB Output is correct
10 Correct 5 ms 344 KB Output is correct
11 Correct 2 ms 344 KB Output is correct
12 Correct 3 ms 344 KB Output is correct
13 Correct 7 ms 344 KB Output is correct
14 Correct 5 ms 344 KB Output is correct
15 Correct 7 ms 344 KB Output is correct
16 Correct 7 ms 344 KB Output is correct
17 Correct 8 ms 344 KB Output is correct
18 Correct 9 ms 344 KB Output is correct
19 Incorrect 3 ms 344 KB Wrong answer.
20 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 1 ms 344 KB Output is correct
6 Correct 3 ms 344 KB Output is correct
7 Correct 2 ms 344 KB Output is correct
8 Correct 5 ms 344 KB Output is correct
9 Correct 7 ms 344 KB Output is correct
10 Correct 5 ms 344 KB Output is correct
11 Correct 2 ms 344 KB Output is correct
12 Correct 3 ms 344 KB Output is correct
13 Correct 7 ms 344 KB Output is correct
14 Correct 5 ms 344 KB Output is correct
15 Correct 7 ms 344 KB Output is correct
16 Correct 7 ms 344 KB Output is correct
17 Correct 8 ms 344 KB Output is correct
18 Correct 9 ms 344 KB Output is correct
19 Incorrect 3 ms 344 KB Wrong answer.
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 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 0 ms 344 KB Output is correct
7 Correct 19 ms 344 KB Output is correct
8 Correct 10 ms 344 KB Output is correct
9 Incorrect 234 ms 344 KB Too many queries.
10 Halted 0 ms 0 KB -