Submission #792974

#TimeUsernameProblemLanguageResultExecution timeMemory
792974vjudge1동굴 (IOI13_cave)C++17
13 / 100
568 ms432 KiB
#include <iostream>
#include "cave.h"
using namespace std;
void exploreCave(int N)
{
    int i, j, k, c = 0, u, t;
    bool w, x;
    for (i = N - 1; i > 0; i /= 2)
        c++;
    int S[N], D[N], s[N], v[c];
    for (i = 0; i < N; i++)
        D[i] = S[i] = -1;
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
            if (S[j] == -1)
                s[j] = 0;
        }
        u = tryCombination(s);
        w = (u == i);
        t = 1;
        for (k = 0; k < c; k++)
        {
            for (j = 0; j < N; j++)
            {
                if (S[j] == -1)
                    s[j] = (j & t);
            }
            u = tryCombination(s);
            x = (u == i);
            if (w == x)
                v[k] = 0;
            else
                v[k] = 1;
            t *= 2;
        }
        t = 0;
        for (k = c - 1; k >= 0; k--)
            t = 2 * t + v[k];
        D[t] = i;
        if (w)
            S[t] = 1;
        else
            S[t] = 0;
        s[t] = S[t];
    }
    answer(S, 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...