제출 #1281261

#제출 시각아이디문제언어결과실행 시간메모리
1281261darele동굴 (IOI13_cave)C++20
13 / 100
17 ms488 KiB
#include "cave.h" #include <iostream> using namespace std; // Subtareas 1, 2 y 3 // void exploreCave(int N) { // int puerta[N]; // int pos[N]; // bool vis[N]; // for (int i = 0; i < N; i++) { // pos[i] = 0; // puerta[i] = -1; // vis[i] = 0; // } // int prev = tryCombination(pos); // int ans; // while (prev != -1) { // for (int i = 0; i < N; i++) { // if (vis[i]) continue; // pos[i] = 1; // ans = tryCombination(pos); // if (ans > prev || ans == -1) { // vis[i] = 1; // prev = ans; // break; // } // if (ans < prev) { // vis[i] = 1; // } // pos[i] = 0; // } // } // for (int i = 0; i < N; i++) { // pos[i] = (pos[i] + 1) % 2; // int ans = tryCombination(pos); // puerta[i] = ans; // pos[i] = (pos[i] + 1) % 2; // } // answer(pos, puerta); // } void exploreCave(int N) { int puerta[N]; int pos[N]; bool vis[N]; for (int i = 0; i < N; i++) { pos[i] = 0; puerta[i] = -1; vis[i] = 0; } int prev; int ans; int ini, fin, mid; while (1) { prev = tryCombination(pos); if (prev == -1) { break; } ini = 0; fin = N; mid = (ini + fin) / 2; while (fin - ini > 1) { mid = (ini + fin) / 2; for (int i = ini; i < mid; i++) { pos[i] = 1; } ans = tryCombination(pos); if (ans == -1) break; for (int i = ini; i < mid; i++) { if (vis[i]) continue; pos[i] = 0; } if (ans > prev) { fin = mid; } else { ini = mid; } } if (ans == -1) break; mid = (ini + fin) / 2; pos[mid] = 1; ans = tryCombination(pos); if (ans > prev || ans == -1) { pos[mid] = 1; vis[mid] = 1; } else { mid += 1; pos[mid] = 1; vis[mid] = 1; } } for (int i = 0; i < N; i++) { pos[i] = (pos[i] + 1) % 2; int ans = tryCombination(pos); puerta[i] = ans; pos[i] = (pos[i] + 1) % 2; } answer(pos, puerta); }
#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...