Submission #1322951

#TimeUsernameProblemLanguageResultExecution timeMemory
1322951wangzhiyi33Super Dango Maker (JOI22_dango3)C++20
100 / 100
1068 ms1672 KiB
#include "dango3.h"
#include<bits/stdc++.h>
using namespace std;

void Solve(int N, int M) {
  vector<int>ans[M+1];
  vector<int>isi[M+1];

  for(int q=1;q<=M;q++){
    for(int w=1;w<=N*M;w++){
      isi[q].push_back(w);
    }
  }

  for(int idx=1;idx<=N*M;idx++){
    int l=1,r=M;
    int mana=1;

    while(l<=r){
      int mid=(l+r)/2;
      isi[mid].erase(find(isi[mid].begin(),isi[mid].end(),idx));

      if(Query(isi[mid])==M-1){
        mana=mid;
        r=mid-1;
      }
      else{
        l=mid+1;
      }
      isi[mid].push_back(idx);
    }
    ans[mana].push_back(idx);
    isi[mana].erase(find(isi[mana].begin(),isi[mana].end(),idx));
  }

  for(int q=1;q<=M;q++){
    Answer(ans[q]);
  }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...