#include "cave.h"
#include <bits/stdc++.h>
using namespace std;
void exploreCave(int n) {
int s[n]; // Estado actual de cada switch
int d[n]; // A qué puerta está conectado cada switch
int finalS[n]; // Posición correcta de cada switch
bool used[n]; // Marca si el switch ya fue identificado
fill(s, s + n, 0); // Todos los switches inician en 0
fill(used, used + n, false);
for (int puerta = 0; puerta < n; puerta++) {
int original = tryCombination(s); // Puerta actual que está cerrada
for (int j = 0; j < n; j++) {
if (used[j]) continue;
s[j] ^= 1; // Prueba el otro estado del switch j
int nuevo = tryCombination(s);
s[j] ^= 1; // Revertir el cambio
if (nuevo != original) {
// Entonces el switch j controla la puerta 'puerta'
d[j] = puerta;
finalS[j] = (nuevo == puerta) ? s[j] ^ 1 : s[j];
s[j] = finalS[j];
used[j] = true;
break;
}
}
}
answer(finalS, d);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |