제출 #1033117

#제출 시각아이디문제언어결과실행 시간메모리
1033117shenfe1Super Dango Maker (JOI22_dango3)C++17
100 / 100
2308 ms1844 KiB
#include "dango3.h"
#include <bits/stdc++.h>
 
using namespace std;
 
#define pb push_back
#define all(v) v.begin(),v.end()
#define sz(s) (int)s.size()
#define ppb pop_back
 
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int n,m;

vector<int> xo(vector<vector<int>> a,int mid){
    vector<int> use(n*m+1,0);
    for(int i=0;i<=mid;i++){
        for(int j=0;j<sz(a[i]);j++){
            use[a[i][j]]=1;
        }
    }
    vector<int> vec;
    for(int i=1;i<=n*m;i++)if(!use[i])vec.pb(i);
    return vec;
}

void Solve(int N, int M) {
    n=N,m=M;
    vector<vector<int>> a(M);
    for(int i=1;i<=N*M;i++){
        int l=0,r=M-1,res=M-1;
        while(l<=r){
            int m=(l+r)/2;
            a[m].pb(i);
            if(M-Query(xo(a,m))==m+2){
                l=m+1;
            }
            else{
                r=m-1;
                res=m;
            }
            a[m].ppb();
        }
        // cout<<i<<" "<<res<<'\n';
        a[res].pb(i);
    }
    for(int i=0;i<M;i++)Answer(a[i]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...