Submission #1158291

#TimeUsernameProblemLanguageResultExecution timeMemory
1158291lopkusSuper Dango Maker (JOI22_dango3)C++20
22 / 100
262 ms640 KiB
#include "dango3.h"

#include <bits/stdc++.h>

using namespace std;

void Solve(int N, int M) {
  vector<int> current;
  for(int i = 1; i <= N * M; i++) {
    current.push_back(i);
  }
  vector<int> have;
  int cnt = 0;
  while(current.size() > 0) {
    vector<int> have_to_ask;
    int ptr = current.size() - 1;
    while(have.size() < N) {
      int l = 0, r = ptr, p = - 1;
      while(l <= r) {
        int mid = (l + r) / 2;
        vector<int> ask;
        for(auto x : have_to_ask) {
          ask.push_back(x);
        }
        for(int i = 0; i <= mid; i++) {
          ask.push_back(current[i]);
        }
        if(Query(ask) >= 1) {
          r = mid - 1;
          p = mid;
        }
        else {
          l = mid + 1;
        }
      }
      have.push_back(current[p]);
      have_to_ask.push_back(current[p]);
      current.erase(current.begin() + p);
      ptr = p - 1;
    }
    Answer(have);
    have.clear();
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...