Submission #1303100

#TimeUsernameProblemLanguageResultExecution timeMemory
1303100Mamikonm1Unscrambling a Messy Bug (IOI16_messy)C++20
38 / 100
18 ms412 KiB
#include <bits//stdc++.h>
#include "messy.h"
using namespace std;
mt19937 rg(time(nullptr));
std::vector<int> restore_permutation(int n, int w, int r) {
    string a=string(n,'0'),cur=a;
    vector<int>ind(n),ans(n),p(n);
    for(int i=0;i<n;++i)p[i]=i;
    int id,it,rp=rg()%99956+1;
    while(rp--)shuffle(begin(p),end(p),rg);
    for(int i=0;i<n;++i){
        a[p[i]]='1';
        ind[i]=i;
        add_element(a);
    }
    compile_set();
    vector<bool>vis(n);
    for(int i=0;i<n;++i){
        for(int j=0;j<n;++j)vis[j]=0;
        for(;;){
            id=rg()%ind.size();
            if(vis[it=ind[id]])continue;
            vis[it]=1;
            cur[it]='1';
            if(check_element(cur)){
                ans[it]=p[i];
                ind.erase(begin(ind)+id);
                break;
            }
            cur[it]='0';
        }
    }
    return ans;
}

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...