Submission #376743

#TimeUsernameProblemLanguageResultExecution timeMemory
376743casperwangMinerals (JOI19_minerals)C++14
6 / 100
12 ms364 KiB
#include "minerals.h" #include <bits/stdc++.h> #define All(x) x.begin(), x.end() #define pb emplace_back using namespace std; #define debug(args...) kout("[ " + string(#args) + " ]", args) void kout() { cerr << endl; } template <class T, class ...U> void kout(T a, U ...b) { cerr << a << ' ',kout(b...); } template <class T> void pary(T L, T R) { while (L != R) cerr << *L << " \n"[++L==R]; } void Solve(int N) { srand(time(NULL)); vector <int> num(2*N); for (int i = 0; i < 2*N; i++) num[i] = i+1; random_shuffle(All(num)); deque <int> dq; vector <int> tmp; int now = 0, prev = 0; for (int i = 0; i < 2*N; i++) { int id = num[i]; prev = now; now = Query(id); dq.push_back(id); if (now != prev+1) { while (true) { prev = now; now = Query(dq.front()); if (now == prev-1) { tmp.pb(dq.front()); dq.pop_front(); } else { Answer(id, dq.front()); dq.pop_front(); break; } } prev = now; now = Query(id); dq.pop_back(); } for (int i : tmp) { dq.push_front(i); prev = now; now = Query(i); } tmp.clear(); } }
#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...