제출 #554967

#제출 시각아이디문제언어결과실행 시간메모리
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);
}

컴파일 시 표준 에러 (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...