# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1199768 | omarrrr | Minerals (JOI19_minerals) | C++20 | 0 ms | 0 KiB |
#include "minerals.h"
#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
ll n;
void merge(vector<ll>a,vector<ll>b){
vector<ll>c,d,x,y;
ll p=0;
for(ll i=0;i<a.size()/2;i++){
c.pb(a[i]);
p=Query(a[i]);
}
for(ll i=a.size()/2;i<a.size();i++){
x.pb(a[i]);
}
for(ll i=0;i<b.size();i++){
if(Query(b[i])==p){
d.pb(b[i]);
}else{
y.pb(b[i]);
}
Query(b[i]);
}
for(ll i=0;i<a.size()/2;i++){
p=Query(a[i]);
}
if(c.size()>1){
merge(c,d);
}else if(c.size()==1){
Answer(c[0],d[0]);
}
if(x.size()>1){
merge(x,y);
}else if(x.size()==1){
Answer(x[0],y[0]);
}
return;
}
void Solve(int N) {
n=N;
vector<ll>a,b;
ll p=0,x=0;
for(ll i=1;i<=2*n;i++){
x=Query(i);
if(x!=p){
p++;
a.pb(i);
}else{
b.pb(i);
}
}
for(ll i=1;i<=2*n;i++){
x=Query(i);
}
merge(a,b);
return;
}}