Submission #1297139

#TimeUsernameProblemLanguageResultExecution timeMemory
1297139thesentroUnscrambling a Messy Bug (IOI16_messy)C++20
38 / 100
2 ms356 KiB
#include <vector>
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
#define ll int
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
std::vector<int> restore_permutation(int n, int w, int r) {
    // add_element("0");
    // compile_set();
    // check_element("0");
    string ret(n, '0');
    for (int i=0 ; i<n-1 ; i++)
    {
        ret[i] = '1';
        add_element(ret);
        // cout<<ret<<endl;
    }
    compile_set();
    vector<ll>res(n, -1);
    string temp(n, '0');
    for (int i=0 ; i<n-1 ; i++)
    {
        vector<ll>b(n, 1);
        ll cnt=n-i;
        for (int j=0 ; j<n ; j++)
        {
            if (temp[j]=='1')
                b[j] = 0;
        }
        while (true)
        {
            ll v = rng()%cnt;
            v++;
            ll sum=0;
            ll val;
            for (int j=0 ; j<n ; j++)
            {
                sum += b[j];
                if (sum==v)
                {
                    val = j;
                    break;
                }
            }
            b[val] = 0;
            cnt--;
            temp[val] = '1';
            if (check_element(temp))
            {
                res[val] = i;
                break;
            }
            else
                temp[val] = '0';
        }
    }
    for (int i=0 ; i<n ; i++)
    {
        if (res[i]==-1)
        {
            res[i] = n-1;
            break;
        }
    }
    return res;
}

Compilation message (stderr)

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...