Submission #1364146

#TimeUsernameProblemLanguageResultExecution timeMemory
1364146abgfd324동굴 (IOI13_cave)C++20
12 / 100
211 ms532 KiB
#include<iostream>
#include<vector>
#include"cave.h"
using namespace std;
int S[5001], D[5001];
int curS[5001];
bool prc[5001];
void exploreCave(int N)
{
    fill(S, S+5000, 0);
    fill(D, D+5000, 0);
    fill(curS, curS+5000, 0);
    fill(prc, prc+5000, false);
    for(int i = 0; i < N; i++)
    {
        for(int j = 0; j < N; j++)
        {
            if(prc[j]) curS[j] = S[j];
            else curS[j] = 0;
        }
        int open;
        int cur = tryCombination(curS);
        if(cur > i || cur == -1) open = 0;
        else open = 1;
        int l = 0, r = N-1;
        while(l < r)
        {
            int m = (l+r)/2;
            for(int i = 0; i < N; i++)
            {
                if(prc[i]) curS[i] = S[i];
                else
                {
                    if(i <= m) curS[i] = open;
                    else curS[i] = abs(open-1);
                }
            }
            int ans = tryCombination(curS);
            if(ans > i || ans == -1) r = m;
            else l = m+1;
        }
        prc[l] = true;
        S[i] = open;
        D[i] = l;
    }
    answer(S, D);
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...