#include <bits/stdc++.h>
#include "dango3.h"
int GetMax(const std::vector<int> &x, int n, int m)
{
std::set<int> s;
for (int i = 1; i <= n * m; i++)
{
s.insert(i);
}
for (int j : x)
{
s.erase(j);
}
std::vector<int> now;
for (int j : s)
{
now.push_back(j);
}
return m - Query(now);
}
void Solve(int n, int m)
{
std::vector<std::vector<int>> ans(m);
for (int i = 1; i <= n * m; i++)
{
int l = -1, r = m;
while (l + 1 < r)
{
int mid = (l + r) / 2;
ans[mid].push_back(i);
if (GetMax(ans[mid], n, m) == 2)
{
l = mid;
}
else
{
r = mid;
}
ans[mid].pop_back();
}
// assert(r != m);
ans[r].push_back(i);
}
for (int i = 0; i < m; i++)
{
Answer(ans[i]);
}
}
# | 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... |