Submission #1215363

#TimeUsernameProblemLanguageResultExecution timeMemory
1215363AbdullahIshfaqMinerals (JOI19_minerals)C++20
0 / 100
0 ms416 KiB
#include <bits/stdc++.h> #include "minerals.h" using namespace std; void Solve(int N){ int total = 2 * N; vector<int> lo(total + 1, 1), hi(total + 1, total); vector<int> last_query(total + 1, -1); bool changed = true; while (changed) { changed = false; unordered_map<int, vector<int>> bucket; for (int i = 1; i <= total; i++) { if (lo[i] < hi[i]) { int mid = lo[i] + (hi[i] - lo[i]) / 2; bucket[mid].push_back(i); changed = true; } } for (auto &p : bucket) { int mid = p.first; bool response = Query(mid); for (int idx : p.second) { if (last_query[idx] == -1) { last_query[idx] = response; } else { if (response == last_query[idx]) { hi[idx] = mid; } else { lo[idx] = mid + 1; last_query[idx] = response; } } } } } for (int i = 1; i <= total; i++) { Answer(i, lo[i]); } }
#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...