제출 #1370077

#제출 시각아이디문제언어결과실행 시간메모리
1370077SpyrosAlivSuper Dango Maker (JOI22_dango3)C++20
100 / 100
1162 ms1076 KiB
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;

namespace {

int variable_example = 1;

int make_query(vector<bool> willAsk) {
  int n = willAsk.size() - 1;
  vector<int> qr;
  for (int i = 1; i <= n; i++) {
    if (willAsk[i]) qr.push_back(i);
  }
  return Query(qr);
}

void dbg(vector<int> x) {
  cout << "DBG: ";
  for (auto xx: x) cout << xx << " ";
  cout << "\n";
}

}  // namespace

void Solve(int N, int M) {
  int n = N;
  int m = M;
  vector<vector<int>> sets(m+1);
  sets[1].push_back(1);
  for (int i = 2; i <= n*m; i++) {
    int lo = 1, hi = m;
    int fin = 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      vector<bool> willAsk(n*m+1, true);
      for (auto x: sets[mid]) {
        willAsk[x] = false;
      }
      willAsk[i] = false;
      int tot = make_query(willAsk);
      if (tot == m-1) {
        fin = mid;
        hi = mid-1;
      }
      else lo = mid+1;
    }
    sets[fin].push_back(i);
  }
  for (int i = 1; i <= m; i++) {
    Answer(sets[i]);
  }
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…