Submission #1243688

#TimeUsernameProblemLanguageResultExecution timeMemory
1243688mathias_abadieCave (IOI13_cave)C++20
0 / 100
1 ms328 KiB
#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 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...