제출 #729515

#제출 시각아이디문제언어결과실행 시간메모리
729515NeroZeinCave (IOI13_cave)C++17
51 / 100
359 ms464 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std; 
 
const int N = 5005;
 
bool vis[N];
 
void exploreCave(int N_) {
  int n;
  n = N_;
  int a[n]; 
  for (int i = 0; i < n; ++i) {
    a[i] = 0; 
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < n; ++j) {
      if (!vis[j]) {
        a[j] = 0; 
      }
    }
    int x = tryCombination(a);
    int z = 1; 
    if (x > i || x == -1) {
      z = 0; 
    }
    int l = 0, r = n - 1;
    while (l < r) {
      int mid = (l + r) >> 1;
      for (int j = 0; j <= mid; ++j) {
        if (!vis[j]) {
          a[j] = z; 
        }
      }
      for (int j = mid + 1; j < n; ++j) {
        if (!vis[j]) {
          a[j] = z ^ 1; 
        }
      }
      x = tryCombination(a); 
      if (x > i || x == -1) {
        r = mid; 
      } else {
        l = mid + 1; 
      }
    }
    a[l] = z; 
    vis[l] = true;
  } 
  int d[n];
  for (int i = 0; i < n; ++i) {
    d[i] = 0; 
  }
  for (int i = 0; i < n; ++i) {
    a[i] ^= 1; 
    int x = tryCombination(a); 
    d[i] = x; 
    a[i] ^= 1; 
  }
  answer(a, d);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...