# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
388833 | kshitij_sodani | Minerals (JOI19_minerals) | C++14 | 98 ms | 6336 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.
//#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long llo;
#define mp make_pair
#define pb push_back
#define a first
#define b second
#define endl '\n'
#include "minerals.h"
vector<pair<int,int>> ans;
set<int> xx;
void solve(vector<int> aa,vector<int> bb){
if(aa.size()==1){
ans.pb({aa[0],bb[0]});
return;
}
int cur=0;
vector<int> cc;
vector<int> dd;
vector<int> ee;
vector<int> ff;
map<int,int> ss;
map<int,int> tt;
for(auto j:xx){
ss[j]++;
}
for(int i=0;i<aa.size();i++){
if(i*2>=aa.size()){
dd.pb(aa[i]);
continue;
}
// cur=Query(aa[i]);
cc.pb(aa[i]);
tt[aa[i]]++;
}
for(auto j:tt){
if(ss.find(j.a)==ss.end()){
xx.insert(j.a);
Query(j.a);
}
}
for(auto j:ss){
if(tt.find(j.a)==tt.end()){
xx.erase(j.a);
Query(j.a);
}
}
cur=cc.size();
for(int i=0;i<bb.size();i++){
int cur2=Query(bb[i]);
Query(bb[i]);
if(cur2==cur){
ee.pb(bb[i]);
continue;
}
ff.pb(bb[i]);
}
solve(cc,ee);
solve(dd,ff);
}
void Solve(int n) {
vector<int> aa;
vector<int> bb;
int cur5=0;
for(int i=1;i<=2*n;i++){
int cur2=Query(i);
if(cur2>cur5){
aa.pb(i);
cur5=cur2;
continue;
}
bb.pb(i);
Query(i);
}
for(auto j:aa){
Query(j);
}
solve(aa,bb);
for (int i=0; i<n;i++) {
Answer(ans[i].a,ans[i].b);
}
}
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... |