Submission #592773

#TimeUsernameProblemLanguageResultExecution timeMemory
592773PiejanVDCUnscrambling a Messy Bug (IOI16_messy)C++17
38 / 100
1 ms340 KiB
#include <bits/stdc++.h>
#include "messy.h"
using namespace std;

void add_element(string x);
bool check_element(string x);
void compile_set();

vector<int>restore_permutation(int n, int w, int r) {
    string s = "";
    for(int i = 0 ; i < n ; i++) {
        s += '0';
    }
    
    for(int i = 0 ; i < n ; i++) {
        s[i] = '1';
        add_element(s);
    }

    compile_set();

    s = "";

    for(int i = 0 ; i < n ; i++)
        s += '0';

    vector<int>p(n, -1);

    for(int i = 1 ; i <= n ; i++) {
        
        vector<int>l;

        for(int ii = 0 ; ii < n ; ii++)
            if(s[ii] == '0')
                l.push_back(ii);

        std::random_device rd;
        std::mt19937 g(rd());

        random_shuffle(l.begin(), l.end());

        for(int ii = 0 ; ii < l.size() ; ii++) {
            s[l[ii]] = '1';
            if(check_element(s)) {
                p[l[ii]] = i-1;
                break;
            }
            s[l[ii]] = '0';            
        }
    }

    return p;
}

Compilation message (stderr)

messy.cpp: In function 'std::vector<int> restore_permutation(int, int, int)':
messy.cpp:42:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |         for(int ii = 0 ; ii < l.size() ; ii++) {
      |                          ~~~^~~~~~~~~~
#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...