Submission #1314202

#TimeUsernameProblemLanguageResultExecution timeMemory
1314202AksLolCodingUnscrambling a Messy Bug (IOI16_messy)C++17
100 / 100
1 ms568 KiB
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> restore_permutation(int n, int w, int r){
    vector<int> cl(129);
    int cnt=n;
    while(cnt>1){
        for(int i=1;i<=n;i++){
            cl[i]=(i+cnt-1)/cnt;
        }
        cnt/=2;
        for(int cur=1;cur<=cl[n];cur++){
            string s="";
            for(int i=1;i<=n;i++){
                if(cl[i]!=cur) s+="1";
                else s+="0";
            }
            for(int i=1;i<=n;i++){
                if(cl[i]==cur){
                    for(int j=i;j<i+cnt;j++){
                        s[j-1]='1';
                        add_element(s);
                        s[j-1]='0';
                    }
                    break;
                }
            }
        }
    }
    compile_set();
    vector<int> ans(n+1),ans2(n+1);
    for(int i=1;i<=n;i++){
        ans[i]=0;
    }
    cnt=n;
    while(cnt>1){
        ans2=ans;
        vector<int>cl2;
        for(int cur=0;cur<cl[n];cur++){
            string s="";
            for(int i=1;i<=n;i++){
                if(ans[i]!=cur) s+="1";
                else s+="0";
            }
            for(int i=1;i<=n;i++){
                if(ans[i]==cur){
                    s[i-1]='1';
                    bool is=check_element(s);
                    ans2[i]*=2;
                    if(!is){
                        ans2[i]++;
                    }
                    s[i-1]='0';
                }
            }
        }
        ans=ans2;
        cnt/=2;
    }
    ans.erase(ans.begin());
    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...