| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1353680 | muhammad-ahmad | Minerals (JOI19_minerals) | C++20 | 0 ms | 0 KiB |
#include "minerals.h"
#include <bits/stdc++.h>
using namespace std;
void solve(vector<int> A, vector<int> B){
if (A.empty()) return;
if (A.size() == 1){
Answer(A[0], B[0]);
return;
}
int mid = A.size() / 2;
vector<int> A1(A.begin(), A.begin() + mid), A2(A.begin() + mid, A.end());
vector<int> B1, B2;
int bef = 0;
for (auto i : A1){
bef = Query(i);
}
for (auto i : B){
int now = Query(i);
if (now == bef) B1.push_back(i);
else B2.push_back(i);
Query(i);
}
for (auto i : A1) Query(i);
solve(A1, B1);
solve(A2, B2);
}
void Solve(int N){
vector<int> A, B;
int lst = 0;
for (int i = 1; i <= 2 * N; i++){
int x = Query(i);
if (x > lst){
A.push_back(i);
}
else {
B.push_back(i);
}
lst = x;
}
for (int i = 1; i <= 2 * N; i++) Query(i);
}
solve(A, B);
}