Submission #1284986

#TimeUsernameProblemLanguageResultExecution timeMemory
1284986Faisal_SaqibUnscrambling a Messy Bug (IOI16_messy)C++17
20 / 100
2 ms348 KiB
// #pragma once

#include <bits/stdc++.h>
// #include ""
using namespace std;
void add_element(std::string x);
bool check_element(std::string x);
void compile_set();

std::vector<int> restore_permutation(int n, int w, int r)
{
    string s(n,'0');
    for(int i=0;i<n;i++)
    {
        s[i]='1';
        add_element(s);
    }
    compile_set();
    vector<pair<int,string>> st;
    for(int m=1;m<(1<<n);m++)
    {
        string t;
        for(int i=0;i<n;i++)t+=char('0'+((m>>i)&1));
        if(check_element(t))
        {
            int cnt=0;
            for(auto j:t)
            {
                if(j=='1')
                {
                    cnt++;
                }
            }
            st.push_back({cnt,t});
        }
    }
    sort(begin(st),end(st));
    vector<int> p(n+1); // p[i] where i-th bit go
    set<int> cur;
    for(int i=0;i<n;i++)
    {
        string t=st[i].second;
        for(int k=0;k<n;k++)
        {
            if(t[k]!='1')continue;
            if(cur.find(k)==cur.end())
            {
                p[i]=k;
                cur.insert(k);
                break;
            }
        }
    }
    vector<int> q(n);
    for(int i=0;i<n;i++)q[p[i]]=i;
    return q;
}

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