Submission #1223849

#TimeUsernameProblemLanguageResultExecution timeMemory
122384912baater동굴 (IOI13_cave)C++20
0 / 100
34 ms328 KiB
#include "cave.h" #include <vector> #include <iostream> using namespace std; int switches[5050]; bool done[5050]; int door[5050]; void flip(int l, int r) { for (int i = l; i < r; i++) { if (done[i]) continue; switches[i] = !switches[i]; } } void exploreCave(int N) { vector<int> position(N); bool open = 0; for (int i = 0; i < N; i++) { // cout << i << "\n"; int lower = 0, upper = N; int currentFirst = tryCombination(switches); open = (currentFirst > i || currentFirst == -1); while (upper - lower > 1) { int mid = (upper-lower+1)>>1; // printf("Trying %d, %d\n", upper, lower); flip(lower, lower+mid); currentFirst = tryCombination(switches); if (open == (currentFirst > i || currentFirst == -1)) { lower += mid; } else { upper = lower+mid; } } done[lower] = true; door[lower] = i; } answer(switches, door); }
#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...