Submission #729503

#TimeUsernameProblemLanguageResultExecution timeMemory
729503NeroZein동굴 (IOI13_cave)C++17
13 / 100
840 ms376 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) {
    int l = 0, r = n;
    while (l < r) {
      int mid = (l + r) >> 1; 
      for (int j = 0; j <= mid; ++j) {
        if (!vis[j]) {
          a[j] = 0; 
        }
      }
      for (int j = mid + 1; j < n; ++j) {
        if (!vis[j]) {
          a[j] = 1; 
        }
      }
      int z = tryCombination(a);
      if (z == -1 || z > i) {
        r = mid;
      } else {
        l = mid + 1; 
      }
    }
    if (l != n) {
      a[l] = 0;
      vis[l] = true; 
    } else {
      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] = 1; 
          }
        }
        for (int j = mid + 1; j < n; ++j) {
          if (!vis[j]) {
            a[j] = 0; 
          }
        }
        int z = tryCombination(a);
        if (z == -1 || z > i) {
          r = mid;
        } else {
          l = mid + 1; 
        }
      }
      vis[l] = true;
      a[l] = 1; 
    }
    //for (int j = 0; j < n; ++j) {
      //cout << a[j] << ' ';
    //}
    //cout << '\n'; 
    //for (int j = 0; j < n; ++j) {
      //cout << vis[j] << ' '; 
    //} 
    //cout << '\n' << '\n'; 
  } 
  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...