# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
792247 | beaconmc | Minerals (JOI19_minerals) | C++14 | 19 ms | 3708 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "minerals.h"
#include <bits/stdc++.h>
typedef long long ll;
#define FOR(i, x, y) for(ll i=x; i<y; i++)
#define FORNEG(i, x, y) for(ll i=x; i>y; i--)
#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL)
std::vector<ll> machine;
void empty(){
using namespace std;
for (auto&i : machine){
Query(i);
}
machine.clear();
}
void Solve(int N) {
using namespace std;
vector<vector<ll>> top;
vector<vector<ll>> bot;
top.push_back({});
bot.push_back({});
ll cur = 0;
FOR(i,1, 2*N+1){
machine.push_back(i);
ll result = Query(i);
if (result == cur + 1){
cur++;
top[0].push_back(i);
}else{
Query(i);
machine.pop_back();
bot[0].push_back(i);
}
}
empty();
while (!(top.size() == bot.size() && bot.size() == N)){
vector<vector<ll>> temp;
for (auto&i : bot){
if (i.size() == 1){
temp.push_back(i);
continue;
}
vector<ll> temp2;
FOR(j,0,i.size()/2){
temp2.push_back(i[j]);
}
temp.push_back(temp2);
temp2.clear();
FOR(j, i.size()/2, i.size()){
temp2.push_back(i[j]);
}
temp.push_back(temp2);
}
bot = temp;
temp.clear();
ll ind = 0;
FOR(i,0,top.size()){
if (top[i].size() == 1){
ind += 1;
temp.push_back(top[i]);
continue;
}
empty();
vector<ll> first;
vector<ll> second;
ll curval = 0;
for (auto&j : bot[ind]){
curval = Query(j);
machine.push_back(j);
}
for (auto&j : top[i]){
ll result = Query(j);
machine.push_back(j);
if (result > curval){
machine.pop_back();
Query(j);
second.push_back(j);
}else{
first.push_back(j);
}
}
temp.push_back(first);
temp.push_back(second);
ind += 2;
}
top = temp;
empty();
}
FOR(i,0,N){
Answer((int) top[i][0],(int) bot[i][0]);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |