Submission #575544

#TimeUsernameProblemLanguageResultExecution timeMemory
575544benjaminkleyn동굴 (IOI13_cave)C++17
0 / 100
2093 ms676 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
typedef long long ll;

void exploreCave(int N)
{
    int d[N];
    for (int i = 0; i < N; i++) d[i] = -1;
    int s[N];
    set<int> r;
    for (int i = 0; i < N; i++) r.insert(i);

    int res = tryCombination(s);
    stack<int> rem;
    while (res != -1)
    {
        for (int i : r)
        {
            s[i] = 1;
            int x = tryCombination(s);
            if (x > res)
            {
                d[i] = res;
                res = x;
                rem.push(i);
                break;
            }
            else if (x < res)
            {
                d[i] = x;
                rem.push(i);
            }
            s[i] = 0;
        }
        while (!rem.empty())
        {
            int i = rem.top();
            rem.pop();
            r.erase(i);
        }
    }
    for (int i = 0; i < N; i++)
        if (d[i] == -1)
        {
            s[i] = 1;
            d[i] = tryCombination(s);
            s[i] = 0;
        }
    
    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...