제출 #97976

#제출 시각아이디문제언어결과실행 시간메모리
97976AlexLuchianov동굴 (IOI13_cave)C++14
0 / 100
1080 ms516 KiB
#include <iostream>
#include "cave.h"

using namespace std;

/*
void answer(int S[], int D[]){
  for(int i = 1 ; i )
}


int tryCombination(int S[]) {
    int i;
    ++num_calls;

    for (i = 0; i < N; ++i)
        if (S[inv[i]] != realS[inv[i]])
            return i;
    return -1;
}
*/

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