제출 #1290149

#제출 시각아이디문제언어결과실행 시간메모리
1290149AbdullahIshfaqCave (IOI13_cave)C++20
100 / 100
146 ms512 KiB
#include "cave.h"
#include <iostream>
using namespace std;
int S[5000], D[5000];
void exploreCave(int N)
{
    int i, j;
    for (i = 0; i < N; i++)
        D[i] = -1;
    for (i = 0; i < N; i++)
    {
        bool t = tryCombination(S) == i;
        int l = -1, r = N - 1, mid;
        while (r - l > 1)
        {
            mid = (r + l) / 2;
            for (j = l; j <= mid; j++)
            {
                if (D[j] == -1)
                    S[j] = 1 - S[j];
            }
            if ((tryCombination(S) == i) == t)
                l = mid;
            else
                r = mid;
            for (j = l; j <= mid; j++)
            {
                if (D[j] == -1)
                    S[j] = 1 - S[j];
            }
        }
        if (t)
            S[r] = 1 - S[r];
        D[r] = i;
    }
    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...