Submission #568768

#TimeUsernameProblemLanguageResultExecution timeMemory
568768tqbfjotldSuper Dango Maker (JOI22_dango3)C++17
100 / 100
4062 ms516 KiB
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;

namespace {

int n,m;
int in[10005];

void func(int id){
    int l = 0;
    int r = m;
    while (l+1<r){
        int mid = (l+r)/2;
        vector<int> q;
        for (int x = 1; x<=n*m; x++){
            if (x==id) continue;
            if (in[x]>=l && in[x]<mid){
                continue;
            }
            q.push_back(x);
        }
        int res = Query(q);
        if (res>=m-(mid-l)){
            r = mid;
        }
        else{
            l = mid;
        }
    }
    in[id] = l;

}

}  // namespace

void Solve(int N, int M) {
    n = N;
    m = M;
    memset(in,-1,sizeof(in));
    for (int x = 1; x<=n*m; x++){
        func(x);
    }
    for (int x = 0; x<m; x++){
        vector<int> ans;
        for (int y = 1; y<=n*m; y++){
            if (in[y]==x){
                ans.push_back(y);
            }
        }
        Answer(ans);
    }
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...