Submission #1277897

#TimeUsernameProblemLanguageResultExecution timeMemory
1277897minggaSuper Dango Maker (JOI22_dango3)C++20
100 / 100
1080 ms1644 KiB
// Author: caption_mingle
#include "bits/stdc++.h"
#include "dango3.h"

using namespace std;

#define ln "\n"
#define pb push_back
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define sz(x) ((int)(x).size())
#define ll long long
const int mod = 1e9 + 7;
const int inf = 2e9;


void Solve(int n, int m) {
	vector<vector<int>> que(m + 1), vec(m + 1);
	for(int i = 1; i <= m; i++) {
		for(int j = 1; j <= n * m; j++) {
			que[i].pb(j);
		}
	}
	for(int i = 1; i <= n * m; i++) {
		int l = 1, r = m;
		int ans = 1;
		while(l <= r) {
			int mid = (l + r) >> 1;
			que[mid].erase(find(all(que[mid]), i));
			int sus = Query(que[mid]);
			que[mid].pb(i);
			if(sus == m - 1) {
				r = mid - 1;
				ans = mid;
			} else l = mid + 1;
		}
		que[ans].erase(find(all(que[ans]), i));
		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...