Submission #514939

#TimeUsernameProblemLanguageResultExecution timeMemory
514939kostia244Minerals (JOI19_minerals)C++17
40 / 100
20 ms1816 KiB
#include "minerals.h"
#include<bits/stdc++.h>
using namespace std;
void Solve(int N) {
	vector<int> A, B, C(N);
	for(int lst = 0, i = 1; i <= 2*N; i++) {
		int cc = Query(i);
		(cc==lst ? B : A).push_back(i);
		lst = cc;
	}
	// for(auto i : A) cout << i << " "; cout << endl;
	for(int i = 1; i <= 2*N; i++)
		Query(i);
	for(int b = 0; b < 16; b++) {
		int lst = 0;
		for(int i = 0; i < N; i++)
			if((i>>b)&1)
				lst = Query(A[i]);
		for(int i = 0; i < N; i++) {
			int qq = Query(B[i]);
			C[i] |= (lst == qq)<<b;
			Query(B[i]);
		}
		for(int i = 0; i < N; i++)
			if((i>>b)&1)
				Query(A[i]);
		// for(auto i : C) cout << i << " "; cout << endl;
	}
	for(int i = 0; i < N; i++)
		Answer(A[C[i]], B[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...