제출 #905200

#제출 시각아이디문제언어결과실행 시간메모리
905200Ahmed57Super Dango Maker (JOI22_dango3)C++17
22 / 100
141 ms848 KiB
#include "dango3.h"
 
#include <bits/stdc++.h>
using namespace std;
mt19937 rng;
void Solve(int n,int m){
    rng.seed(time(0));
    vector<int> xd;
    for(int i = 1;i<=n*m;i++)xd.push_back(i);
    shuffle(xd.begin(),xd.end(),rng);
    int taked[n*m+1] = {0};
    for(int i = 0;i<m;i++){
        vector<int> lol;
        for(int j = 1;j<=n*m;j++){
            if(taked[xd[j-1]]==0){
                lol.push_back(xd[j-1]);
            }
        }
        vector<int> ans;
        int mi = lol.size()-1;
        for(int j = 1;j<=n;j++){
            int l = 0 , r = mi , an = 0;
            while(l<=r){
                int mid = (l+r)/2;
                vector<int> ex;
                for(auto i:ans)ex.push_back(i);
                for(int j = 0;j<=mid;j++){
                    ex.push_back(lol[j]);
                }
                if(Query(ex)>=1){
                    an = mid;
                    r = mid-1;
                }else l = mid+1;
            }
            mi = min(mi,an-1);
            ans.push_back(lol[an]);
        }
        for(auto i:ans)taked[i] = 1;
        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...