This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "messy.h"
#define startt ios_base::sync_with_stdio(false);cin.tie(0);
typedef long long  ll;
using namespace std;
#define vint vector<int>
string convert(int x)
{
    string now = "00000000";
    for(int i = 0; i < 8; i++)
    {
        if((x&(1<<i)) > 0)
        {
            now[i]++;
        }
    }
    return now;
}
vector<int> restore_permutation(int n, int w, int r)
{
    string now = "00000000";
    for(int i = 0; i < 7; i++)
    {
        now[i]++;
        add_element(now);
    }
    compile_set();
    vector<vint> bits(9);
    for(int i = 1; i < 256; i++)
    {
        bits[__builtin_popcount(i)].push_back(i);
    }
    vint ans(8);
    int already = 0;
    for(int i = 1; i <= 8; i++)
    {
        for(auto x : bits[i])
        {
            if(check_element(convert(x)))
            {
                int acc = x-already;
                ans[i-1] = 31-__builtin_clz(acc);
                already = x;
                break;
            }
        }
    }
    return ans;
}
/*
int32_t main(){
    startt
    int t = 1;
    //cin >> t;
    while (t--) {
        solve();
    }
}
*/
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |