제출 #170112

#제출 시각아이디문제언어결과실행 시간메모리
170112buttercrab동굴 (IOI13_cave)C++17
100 / 100
1426 ms716 KiB
#include "cave.h"
#include <bits/stdc++.h>

using namespace std;

int s[5050], d[5050], t[5050], r[5050];

void exploreCave(int n) {
    for (int i = 0; i < n; i++) {
        int p = 0;
        fill(t, t + n, 0);
        for (int j = 0; j < i; j++) {
            t[r[j]] = s[j];
        }
        s[i] = tryCombination(t) == i;
        for (int j = 0; (1 << j) < n; j++) {
            fill(t, t + n, !s[i]);
            for (int k = 0; k < n; k++) {
                if((k & ((1 << (j + 1)) - 1)) == (p | (1 << j)))
                    t[k] = s[i];
            }
            for (int k = 0; k < i; k++) {
                t[r[k]] = s[k];
            }
            if(tryCombination(t) != i) p |= (1 << j);
        }
        d[p] = i;
        r[i] = p;
    }
    for(int i=0; i<n; i++) {
        t[r[i]] = s[i];
    }

    answer(t, 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...