제출 #1322349

#제출 시각아이디문제언어결과실행 시간메모리
1322349mannshah1211Minerals (JOI19_minerals)C++20
0 / 100
0 ms408 KiB
#include <bits/stdc++.h>
#include "minerals.h"

using namespace std;

void Merge(vector<int> a, vector<int> b) {
  if (a.size() == 1) {
    Answer(a[0], b[0]);
    return;
  }
  vector<int> c, d, x, y;
  int p = 0;
  for (int i = 0; i < a.size() / 2; i++) {
    c.push_back(a[i]);
    p = Query(a[i]);
  }
  for (int i = a.size() / 2; i < a.size(); i++) {
    d.push_back(a[i]);
  }
  for (int i = 0; i < b.size(); i++) {
    if (Query(b[i]) == p + 1) {
      y.push_back(b[i]);
    } else {
      x.push_back(b[i]);
    }
    Query(b[i]);
  }
  for (int i = 0; i < a.size(); i++) {
    Query(a[i]);
  }
  Merge(c, x);
  Merge(d, y);
  return;
}

void Solve(int n) {
  vector<int> a, b;
  int p = 0;
  for (int i = 1; i <= 2 * n; i++) {
    if (Query(i) == p + 1) {
      a.push_back(i);
    } else {
      Query(i);
      b.push_back(i);
    }
  }
  for (int i = 0; i < n; i++) {
    Query(a[i]);
  }
  Merge(a, b);
}
#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...