Submission #1345848

#TimeUsernameProblemLanguageResultExecution timeMemory
1345848MisterReaperSuper Dango Maker (JOI22_dango3)C++20
100 / 100
217 ms552 KiB
#include "dango3.h"
#include <bits/stdc++.h>

using i64 = long long;

#ifdef DEBUG
    #include "../debug.h"
#else
    #define debug(...) void(23)
#endif

namespace {

int variable_example = 1;

std::random_device rd;
std::mt19937 rng(rd());

}  // namespace

void Solve(int N, int M) {
    std::vector<int> x(N * M);
    std::iota(x.begin(), x.end(), 1);
    for (int i = 0; i < M; ++i) {
        std::shuffle(x.begin(), x.end(), rng);
        std::vector<int> ans;
        ans.emplace_back(x.back());
        x.pop_back();
        for (int j = 0; j < int(x.size()); ) {
            int d = x[j];
            std::swap(x[j], x.back());
            x.pop_back();
            int ask = Query(x);
            debug(x, ask);
            if (ask != M - i - 1) {
                x.emplace_back(d);
                std::swap(x[j], x.back());
                j++;
            } else {
                ans.emplace_back(d);
            }
            if (ans.size() == N) {
                break;
            }
        }
        debug(ans);
        Answer(ans);
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...