Submission #1141024

#TimeUsernameProblemLanguageResultExecution timeMemory
1141024AliyyiakbarCave (IOI13_cave)C++20
34 / 100
23 ms520 KiB
#include "cave.h"
#include "bits/stdc++.h"
using namespace std;

mt19937 rng(chrono::steady_clock().now().time_since_epoch().count());

void exploreCave(int n)
{
    int s[n], d[n];
    bool used[n];
    memset(s, 0, sizeof(s));
    memset(used, 0, sizeof(used));
    int query = tryCombination(s);
    while(query != -1)
    {
        vector<int> v;
        for (int i = 0; i < n; ++i)
        {
            if (!used[i])
            {
                v.emplace_back(i);
            }
        }
        shuffle(v.begin(), v.end(), rng);
        for (auto i : v)
        {
            s[i] = !s[i];
            int currQuery = tryCombination(s);
            if (currQuery == -1 || currQuery > query)
            {
                query = currQuery;
                used[i] = 1;
                break;
            }
            s[i] = !s[i];
        }
    }
    // assert(tryCombination(s) == -1);
    for (int i = 0; i < n; ++i)
    {
        s[i] = !s[i];
        int pos = tryCombination(s);
        d[i] = pos;
        s[i] = !s[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...