Submission #1186873

#TimeUsernameProblemLanguageResultExecution timeMemory
1186873epicci23Super Dango Maker (JOI22_dango3)C++20
100 / 100
507 ms768 KiB
#include "bits/stdc++.h"
#include "dango3.h"
#define all(v) v.begin() , v.end()
#define sz(a) (int) a.size()
using namespace std;

int n, m;

void DFS(vector<int> Candidate){

  if(sz(Candidate) == n){
  	Answer(Candidate);
  	return;
  }

  m = sz(Candidate) / n;

  int l = m / 2;
  int r = m - l;
  
  vector<int> Must, Remaining;

  for(int i = sz(Candidate) - 1; i >= 0; i--){
    int wait = Candidate.back();
    Candidate.pop_back();

    /*int xd = sz(Must) * (m - 1);
    int lol = sz(Remaining) - xd;

    if(lol < m - 1){
      Remaining.push_back(wait);
      continue;
    }*/

    vector<int> cur;

    for(int u : Candidate) cur.push_back(u);
    for(int u : Must) cur.push_back(u);

    int val = Query(cur);
    if(val >= l) Remaining.push_back(wait);
    else Must.push_back(wait);
  }  

  DFS(Must);
  DFS(Remaining);
}


void Solve(int _n, int _m){
  n = _n, m = _m;
  vector<int> v;
  for(int i = 1 ; i <= n * m; i++) v.push_back(i);
  DFS(v);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...