제출 #575545

#제출 시각아이디문제언어결과실행 시간메모리
575545benjaminkleynCave (IOI13_cave)C++17
46 / 100
11 ms724 KiB
#include <bits/stdc++.h>
#include "cave.h"
using namespace std;
typedef long long ll;

void exploreCave(int N)
{
    int d[N], s[N];
    for (int i = 0; i < N; i++) d[i] = -10, s[i] = 0;
    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 || x == -1)
            {
                d[i] = res;
                res = x;
                rem.push(i);
                if (res == -1) break;
                continue;
            }
            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] == -10)
        {
            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...