Submission #250159

#TimeUsernameProblemLanguageResultExecution timeMemory
250159errorgornMinerals (JOI19_minerals)C++14
40 / 100
33 ms3576 KiB
#include <bits/stdc++.h> #include "minerals.h" using namespace std; #define rep(x,s,e) for (auto x=s;x<e;x++) #define sz(x) (int)(x).size() #define all(x) (x).begin(),(x).end() mt19937 rng(42069); void rec(vector<int> v, bool filled){ //for (auto &it:v) cout<<it<<" ";cout<<endl; if (sz(v)==2){ Answer(v[0],v[1]); if (filled) Query(v[0]),Query(v[1]); return; } int ss=1; while (ss<sz(v)/2) ss<<=1; ss>>=1; vector<int> l,r; if (!filled){ for (auto &it:v){ if (Query(it)>ss){ r.push_back(it); Query(it); } else{ l.push_back(it); } } } else{ int curr=v.size()/2; vector<int> temp; while (curr>ss){ curr=Query(v.back()); temp.push_back(v.back()); v.pop_back(); } while (!v.empty()){ l.push_back(v.back()); v.pop_back(); } for (auto &it:temp){ if (Query(it)>ss){ r.push_back(it); Query(it); } else{ l.push_back(it); } } } rec(l,true),rec(r,false); } void Solve(int n) { vector<int> v; rep(x,1,2*n+1) v.push_back(x); rec(v,false); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...