Submission #1212874

#TimeUsernameProblemLanguageResultExecution timeMemory
1212874BigBadBullyArt Collections (BOI22_art)C++20
20 / 100
56 ms428 KiB
#include <bits/stdc++.h>


#include "art.h"

using namespace std;

void solve(signed N)
{
    int n = N;
    auto comp = [&](int x,int y)->bool
    {
        //x < y
        vector<int> tr;
        tr.push_back(x+1);
        tr.push_back(y+1);
        for (int i = 0; i < n; i++)
            if (i != x && i != y)
                tr.push_back(i+1);
        int a = publish(tr);
        swap(tr[0],tr[1]);
        int b = publish(tr);
        return a < b;
    };
    function<vector<int>(vector<int>)> srt = [&](vector<int> v)->vector<int>
    {
        vector<int> a,b;
        if (v.size()<=1)
            return v;
        int piv = rand()%(v.size());
        for (int i = 0; i < v.size(); i++)
        {
            if (i == piv)
                continue;
            if (comp(v[piv],v[i]))
                b.push_back(v[i]);
            else
                a.push_back(v[i]);
        }
        vector<int> res;
        res = srt(a);
        res.push_back(v[piv]);
        auto vec = srt(b);
        for (int x:vec)
            res.push_back(x);
        return res;
    };
    vector<int> bs(n,0);
    for (int i = 0; i < n; i++)
        bs[i] = i;
    auto ans = srt(bs);
    for (int&x:ans)x++;
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...