Submission #544595

#TimeUsernameProblemLanguageResultExecution timeMemory
544595pavementSuper Dango Maker (JOI22_dango3)C++17
100 / 100
7980 ms700 KiB
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

namespace {

int N, M;
vector<int> x, vec[26];

void complement() {
	vector<int> nx;
	sort(x.begin(), x.end());
	for (int i = 1; i <= N * M; i++)
		if (!binary_search(x.begin(), x.end(), i)) nx.pb(i);
	x = nx;
}

};

void Solve(int N, int M) {
	::N = N;
	::M = M;
	for (int i = 1; i <= N * M; i++) {
		int lo = 1, hi = M, ans = -1;
		while (lo <= hi) {
			int mid = (lo + hi) / 2;
			x.clear();
			for (int j : vec[mid]) x.pb(j);
			x.pb(i);
			complement();
			if (M - Query(x) == 1) ans = mid, hi = mid - 1;
			else lo = mid + 1;
		}
		vec[ans].pb(i);
	}
	for (int i = 1; i <= M; i++) Answer(vec[i]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...