제출 #976726

#제출 시각아이디문제언어결과실행 시간메모리
976726HappyCapybara동굴 (IOI13_cave)C++17
100 / 100
467 ms856 KiB
#include "cave.h"
#include<bits/stdc++.h>
using namespace std;

void exploreCave(int n){
    vector<int> S(n);
    vector<int> D(n);
    vector<int> V(n);
    for (int i=0; i<n; i++){
        vector<int> FG(n, 0);
        for (int j=0; j<i; j++) FG[V[j]] = S[V[j]];
        int s;
        if (tryCombination(FG.data()) == i) s = 1;
        else s = 0;

        int l=0, r=n;
        while (l < r-1){
            vector<int> G(n, s);
            int m = (l+r)/2;
            for (int j=m; j<r; j++) G[j] = 1-s;
            for (int j=0; j<i; j++) G[V[j]] = S[V[j]];
            if (tryCombination(G.data()) == i) l = m;
            else r = m;
        }
        V[i] = l;
        S[l] = s;
        D[l] = i;
    }

    answer(S.data(), D.data());
}
#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...