Submission #1174769

#TimeUsernameProblemLanguageResultExecution timeMemory
1174769HappyCapybaraUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;

vector<int> restore_permutation(int n, int w, int r){
    string bs = "";
    for (int i=0; i<n; i++) bs += "0";
    vector<int> p(n);
    for (int i=0; i<n; i++) p[i] = i;
    for (int l=n; l>=2; l>>=1){
        for (int i=0; i<n; i+=l){
            for (int j=0; j<l/2; j++){
                string cs = bs;
                for (int k=0; k<n; k++){
                    if (k < i || k >= i+l || k == i+j) cs[k] = '1';
                }
                add_element(cs);
            }
        }
    }
    compile_set();
    for (int l=n; l>=2; l>>=1){
        for (int i=0; i<n; i+=l){
            vector<int> a, b;
            for (int j=0; j<l; j++){
                string cs = bs;
                for (int k=0; k<n; k++){
                    if (k < i || k >= i+l || k == i+j) cs[p[k]] = '1';
                }
                if (check_element(cs)) a.push_back(p[i+j]);
                else b.push_back(p[i+j]);
            }
            for (int j=0; j<l/2; j++) p[i+j] = a[j];
            for (int j=l/2; j<l; j++) p[i+j] = b[j-l/2];
        }
    }
    vector<int> res(n);
    for (int i=0; i<n; i++) res[p[i]] = i;
    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...