Submission #167290

#TimeUsernameProblemLanguageResultExecution timeMemory
167290maruiiMinerals (JOI19_minerals)C++14
40 / 100
43 ms1696 KiB
#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;

int A[43005];
void Solve(int N) {
	vector<int> X, Y;
	for (int i = 1, v = 0; i <= 2 * N; ++i) {
		int t = Query(i);
		if (t > v) X.push_back(i);
		else Y.push_back(i);
		v = t;
	}
	for (int i = 1; i <= 2 * N; ++i) Query(i);
	for (int i = 0; i < 16; ++i) {
		int v = 0;
		for (int j = 0; j < N; ++j) if ((j >> i) & 1) v = Query(X[j]);
		for (int j = 0; j < N; ++j) {
			int t = Query(Y[j]);
			if (v == t) A[j] |= 1 << i;
			v = t;
		}
		for (int j = 0; j < N; ++j) Query(Y[j]);
		for (int j = 0; j < N; ++j) if ((j >> i) & 1) Query(X[j]);
	}
	for (int i = 0; i < N; ++i) Answer(Y[i], X[A[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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...