# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
795270 | SlavicG | Minerals (JOI19_minerals) | C++17 | 149 ms | 392 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>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void Solve(int N) {
int B = 50;
deque<int> in;
deque<int> order;
int prev_ans = 0, ans = 0;
for(int i = 1; i <= 2*N; i++){order.push_back(i);}
shuffle(order.begin(), order.end(), rng);
while(!order.empty())
{
ans = prev_ans = in.size();
in.push_back(order.front());
ans = Query(order.front());
order.pop_front();
vector<int> toput;
if(ans != prev_ans){
if((int)in.size() > B) {
for(auto x: in) {
Query(x);
toput.push_back(x);
}
in.clear();
}
goto paiu;
}
while(true)
{
prev_ans = ans;
int now = in.front();
ans = Query(now);
in.pop_front();
if(ans != prev_ans)
{
toput.push_back(now);
}
else
{
Query(in.back());
Answer(now, in.back());
in.pop_back();
break;
}
}
paiu:;
if(toput.empty()){continue;}
int dist = (int)order.size() / (int)toput.size();
int idx = dist;
for(int i = 0; i < toput.size(); i++)
{
if(idx >= order.size())
{
order.push_back(toput[i]);
idx+=dist;
continue;
}
order.insert(order.begin()+idx, toput[i]);
idx+=dist;
}
}
}
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... |