Submission #97975

#TimeUsernameProblemLanguageResultExecution timeMemory
97975AlexLuchianovCave (IOI13_cave)C++14
0 / 100
690 ms472 KiB
#include <iostream>
#include "cave.h"

using namespace std;

void exploreCave(int n) {
  int door[n] = {0}, per[n] = {0}, seen[n] = {0};

  for(int i = 0; i < n; i++){
    int from = 0, to = n - 1;
    if(i < tryCombination(door))
      for(int j = 0; j < n; j++)
        if(seen[j] == 0)
          door[j] ^= 1;

    while(from < to){
      int mid = (from + to) / 2;
      for(int j = 0; j < mid; j++)
        if(seen[j] == 0)
          door[j] ^= 1;
      int val = tryCombination(door);
      if(i <= val || val == -1){
        to = mid;
      } else
        from = mid + 1;
      for(int j = 0; j < mid; j++)
        if(seen[j] == 0)
          door[j] ^= 1;
    }

    door[from] ^= 1;
    per[from] = i;
    seen[from] = 1;
  }
  answer(door, per);
}

#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...