#include "dango3.h"
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
namespace {
int variable_example = 1;
} // namespace
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
int rnd(int l, int r) {
return uniform_int_distribution<int>(l, r)(rng);
}
unsigned seed = chrono::steady_clock::now().time_since_epoch().count();
void Solve(int N, int M) {
vector<int> vis(N * M + 1, 0);
vector<vector<int>> ans;
for (int ite = 1; ite < M; ite++) {
vector<int> vec;
for (int i = 1; i <= N * M; i++) {
if (!vis[i]) vec.pb(i);
}
shuffle(vec.begin(), vec.end(), default_random_engine(seed));
vector<int> cur;
cur.pb(vec[0]);
vis[vec[0]] = 1;
vector<int> ask = vec;
ask.erase(find(ask.begin(), ask.end(), vec[0]));
for (int i = 1; i < vec.size(); i++) {
ask.erase(find(ask.begin(), ask.end(), vec[i]));
int cnt = Query(ask);
if (cnt != M - 1) ask.pb(vec[i]);
else {
cur.pb(vec[i]);
vis[vec[i]] = 1;
}
if (cur.size() == N) break;
}
ans.pb(cur);
}
vector<int> cur;
for (int i = 1; i <= N * M; i++) {
if (vis[i] == 0) cur.pb(i);
}
ans.pb(cur);
for (auto vec : ans) {
// for (auto i : vec) cout << i << ' ';
// cout << '\n';
Answer(vec);
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |