Submission #1326145

#TimeUsernameProblemLanguageResultExecution timeMemory
1326145SSKMFCave (IOI13_cave)C++20
100 / 100
148 ms556 KiB
#include "cave.h"
#include <bits/stdc++.h>
using namespace std;

void exploreCave (int lungime)
{
    int *tip = new int[lungime];
    int *sir = new int[lungime];
    bool *eliminat = new bool[lungime];
    for (int indice = 0 ; indice < lungime ; indice++)
    {
        vector <int> ramas;
        for (int __indice = 0 ; __indice < lungime ; __indice++) {
            if (!eliminat[__indice])
                { ramas.push_back(__indice); tip[__indice] = 0; }
        }

        const int dorit = (tryCombination(tip) == indice ? 1 : 0);

        while (ramas.size() > 1)
        {
            const int luat = (int)ramas.size() / 2;
            for (int __indice = 0 ; __indice < luat ; __indice++)
                { tip[ramas[__indice]] = 0; }
            for (int __indice = luat ; __indice < (int)ramas.size() ; __indice++)
                { tip[ramas[__indice]] = 1; }

            bool inceput = (dorit == 0);
            const int rezultat = tryCombination(tip);
            if (rezultat == indice)
                { inceput ^= true; }

            vector <int> inlocuitor;
            if (inceput) {
                for (int __indice = 0 ; __indice < luat ; __indice++)
                    { inlocuitor.push_back(ramas[__indice]); }
            } else {
                for (int __indice = luat ; __indice < (int)ramas.size() ; __indice++)
                    { inlocuitor.push_back(ramas[__indice]); }
            }

            ramas = inlocuitor;
        }

        eliminat[ramas[0]] = true;
        tip[ramas[0]] = dorit;
        sir[ramas[0]] = indice;
    }

    answer(tip , sir);
}
#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...