Submission #1200063

#TimeUsernameProblemLanguageResultExecution timeMemory
1200063corruptedbrainUnscrambling a Messy Bug (IOI16_messy)C++17
0 / 100
0 ms328 KiB
#include <vector>
#include <string>

#include "messy.h"

using namespace std;

std::vector<int> restore_permutation(int n, int w, int r) {
    // n = 8
    add_element("11110000");
    add_element("11001100");
    add_element("10101010");
    compile_set();
    bool size4 = check_element("11110000");
    bool size2 = check_element("11001100");
    bool size1 = check_element("10101010");
    vector<int> ret = { 0, 1, 2, 3, 4, 5, 6, 7 };
    // Hard code bc lazy
    if (size4) { // Same case
        if (size2) { // Same case
            if (size1) { // Same case
                // do nothing
            }
            else { // Split case
                if (check_element("01101010")) swap(ret[0], ret[1]);
                else if (check_element("10011010")) swap(ret[2], ret[3]);
                else if (check_element("10100110")) swap(ret[4], ret[5]);
                else swap(ret[6], ret[7]);
            }
        }
        else { // Split case
            if (size1) { // Same case
                if (check_element("01101100")) swap(ret[0], ret[2]);
                else if (check_element("10011100")) swap(ret[1], ret[3]);
                else if (check_element("11000110")) swap(ret[4], ret[6]);
                else swap(ret[5], ret[7]);
            }
            else { // Split case
                if (check_element("00111100")) swap(ret[0], ret[3]);
                else if (check_element("10101100")) swap(ret[1], ret[2]);
                else if (check_element("11000011")) swap(ret[4], ret[7]);
                else swap(ret[5], ret[6]);
            }
        }
    }
    else { // Split case
        if (size2) { // Same case
            if (size1) { // Same case
                if (check_element("01111000")) swap(ret[0], ret[4]);
                else if (check_element("10110100")) swap(ret[1], ret[5]);
                else if (check_element("11010010")) swap(ret[2], ret[6]);
                else swap(ret[3], ret[7]);
            }
            else { // Split case
                if (check_element("00101110")) swap(ret[0], ret[5]);
                else if (check_element("11100010")) swap(ret[1], ret[4]);
                else if (check_element("10001011")) swap(ret[2], ret[7]);
                else swap(ret[3], ret[6]);
            }
        }
        else { // Split case
            if (size1) { // Same case
                if (check_element("01001110")) swap(ret[0], ret[6]);
                else if (check_element("10001101")) swap(ret[1], ret[7]);
                else if (check_element("11100100")) swap(ret[2], ret[4]);
                else swap(ret[3], ret[5]);
            }
            else { // Split case
                if (check_element("00101011")) swap(ret[0], ret[7]);
                else if (check_element("11101000")) swap(ret[1], ret[6]);
                else if (check_element("10001110")) swap(ret[2], ret[5]);
                else swap(ret[3], ret[4]);
            }
        }
    }
    return ret;
}

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