제출 #780557

#제출 시각아이디문제언어결과실행 시간메모리
780557sofija6Unscrambling a Messy Bug (IOI16_messy)C++14
38 / 100
2 ms340 KiB
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;
map<string,bool> checked;
bool Check(string cur)
{
    if (checked[cur])
        return false;
    checked[cur]=true;
    return check_element(cur);
}
mt19937 gen{2705};
std::vector<int> restore_permutation(int n, int w, int r) {
    string s="";
    std::vector<int> ans;
    for (int i=0;i<n;i++)
    {
        s+='0';
        ans.push_back(0);
    }
    for (int i=0;i<n;i++)
    {
        s[i]='1';
        add_element(s);
    }
    for (int i=0;i<n;i++)
        s[i]='0';
    compile_set();
    for (int i=0;i<n;i++)
    {
        string cur=s;
        uniform_int_distribution<int> rng(0,n-1);
        checked.clear();
        int pos=-1;
        while (true)
        {
            int x=rng(gen);
            if (cur[x]=='0')
            {
                cur[x]='1';
                if (Check(cur))
                {
                    pos=x;
                    break;
                }
                cur[x]='0';
            }
        }
        if (pos==-1)
            pos=n-1;
        cur[pos]='1';
        ans[pos]=i;
        s=cur;
    }
    return 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...