제출 #874236

#제출 시각아이디문제언어결과실행 시간메모리
874236LucaLucaMSuper Dango Maker (JOI22_dango3)C++17
2 / 100
77 ms600 KiB
#include "dango3.h"
#ifdef LOCAL
#include "grader.cpp"
#endif // LOCAL

#include <vector>
#include <random>
#include <algorithm>

std::mt19937 rng(123);

void Solve(int n, int m) {
  std::vector<int> id(n * m + 1);
  for (int i = 1; i <= n * m; i++) {
    id[i] = i;
  }
  shuffle(id.begin() + 1, id.end(), rng);
  auto query = [&] (std::vector<int> v) {
    return Query(v);
  };

  bool taken[n * m + 1] = {};

  for (int baubau = 0; baubau < m; baubau++) {
    std::vector<int> cur = {};
    for (int i = 1; i <= n * m; i++) {
      if (!taken[id[i]]) {
        cur.push_back(id[i]);
        taken[id[i]] = true;
        break;
      }
    }

    for (int rep = 2; rep <= n; rep++) {
      std::vector<int> ask = cur;

      for (int i = 1; i <= n * m; i++) {
        if (taken[id[i]]) {
          continue;
        }
        ask.push_back(id[i]);
        if (query(ask) == 1) {
          cur.push_back(id[i]);
          taken[id[i]] = true;
          break;
        }
      }
    }
    Answer(cur);
  }
}
/**


3 2
3 3 1 2 1 2

4 4
2 2 3 2 4 4 3 2 3 1 1 3 4 1 4 1


**/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...