#include "dango3.h"
#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2")
//#define int long long
#define pii pair<int,int>
#define vi vector<int>
#define ff first
#define ss second
#define sp << " " <<
#define all(x) x.begin(),x.end()
#define big(x) ((int)(x.size()))
using namespace std;
const int MOD = 1e9+7, LIM = 1e6+1, inf = 2e9;
void Solve(int N, int M) {
vector<vi> sisler(M+1);
vi rem;
for (int i=1;i<=N*M;i++) rem.push_back(i);
for (int i=1;i<=N*M;i++) {
int x = rem.back();
rem.pop_back();
int l = 1;
int r = M;
while (l <= r) {
int m = (l+r) >> 1;
vi toask;
for (auto it : rem) toask.push_back(it);
for (int j = 1;j<=M;j++) {
if (j == m) {
continue;
}
for (auto it : sisler[j]) toask.push_back(it);
}
if (Query(toask) == M-1) r = m-1;
else l = m+1;
}
assert(l >= 1 && l <= M);
sisler[l].push_back(x);
}
for (int i=1;i<=M;i++) {
assert(sisler[i].size() == N);
sort(all(sisler[i]));
Answer(sisler[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... |