Submission #554967

#TimeUsernameProblemLanguageResultExecution timeMemory
554967MilosMilutinovicMinerals (JOI19_minerals)C++14
100 / 100
53 ms3872 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; void solve(vector<int> l, vector<int> r, bool active) { if (l.size() == 1) { Answer(l[0], r[0]); return; } int sz = l.size(); int mid = max(1, (sz * 40) / 100); vector<vector<int>> go_l(2); vector<vector<int>> go_r(2); for (int i = 0; i < mid; i++) { go_l[0].push_back(l[i]); } for (int i = mid; i < sz; i++) { go_l[1].push_back(l[i]); } int cc = 0; for (int i = 0; i < mid; i++) { cc = Query(l[i]); } for (int i = 0; i < r.size(); i++) { if (go_l[0].size() == go_r[0].size()) { go_r[1].push_back(r[i]); } else if (go_l[1].size() == go_r[1].size()) { go_r[0].push_back(r[i]); } else { int qq = Query(r[i]); if (cc == qq) { if (active) { go_r[1].push_back(r[i]); } else { go_r[0].push_back(r[i]); } } else { if (active) { go_r[0].push_back(r[i]); } else { go_r[1].push_back(r[i]); } } cc = qq; } } solve(go_l[0], go_r[0], !active); solve(go_l[1], go_r[1], active); } void Solve(int n) { vector<int> l; vector<int> r; int y = 0; for (int i = 1; i <= 2 * n; i++) { int x = Query(i); if (x != y) { l.push_back(i); } else { r.push_back(i); } y = x; } solve(l, r, 1); }

Compilation message (stderr)

minerals.cpp: In function 'void solve(std::vector<int>, std::vector<int>, bool)':
minerals.cpp:25:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |   for (int i = 0; i < r.size(); 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...