제출 #1246274

#제출 시각아이디문제언어결과실행 시간메모리
1246274adam17Art Collections (BOI22_art)C++20
35 / 100
93 ms408 KiB
#include "art.h"
// #include <algorithm>
using namespace std;

int NN;
vector<int> X;

bool compare(int a, int b) {
    vector<int> V(2);
    V[0] = a;
    V[1] = b;
    for (int i = 1; i <= NN; i++) {
        if ((i != a) && (i != b)) {
            V.push_back(i);
        }
    }
    int x = publish(V);
    V[0] = b;
    V[1] = a;
    int y = publish(V);
    return x < y;
}

void sort(int i, int j) {
    if (j - i > 1) {
        int s = (i + j) / 2;
        sort(i, s);
        sort(s, j);
        vector<int> Y(0);
        int a = i, b = s;
        while ((a < s) && (b < j)) {
            if (compare(X[a], X[b])) {
                Y.push_back(X[a]);
                a++;
            } else {
                Y.push_back(X[b]);
                b++;
            }
        }
        while (a < s) {
            Y.push_back(X[a]);
            a++;
        }
        while (b < s) {
            Y.push_back(X[b]);
            b++;
        }
        for (int ii = 0; ii < Y.size(); ii++) {
            X[i + ii] = Y[ii];
        }
    }
}

void solve(int N) {
    NN = N;
    X.resize(N);
    for (int i = 0; i < N; i++) {
        X[i] = i + 1;
    }
    sort(0, N);
    answer(X);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...