제출 #1369008

#제출 시각아이디문제언어결과실행 시간메모리
1369008marizaUnscrambling a Messy Bug (IOI16_messy)C++20
39 / 100
1 ms580 KiB
#include "messy.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

vector<int> restore_permutation(int n, int w, int r) {
    string s;
    for(ll i=0; i<n; i++) s+='1';

    for(ll i=0; i<7; i++){
        s[i]='0';
        add_element(s);
    }

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

    for(ll i=7; i<n; i++){
        s[i]='1';
        for(ll j=0; j<7; j++){
            if((1ll<<j)&i){
                s[j]='1';
                add_element(s);
                s[j]='0';
            }
        }
        s[i]='0';
    }

    compile_set();

    s="";
    for(ll i=0; i<n; i++) s+='1';

    vector<int> p(n);
    ll idx[7];
    for(ll i=0; i<7; i++){
        for(ll j=0; j<n; j++){
            if(s[j]=='0') continue;

            s[j]='0';
            if(check_element(s)){
                p[j]=i;
                idx[i]=j;
                break;
            }
            else s[j]='1';
        }
    }

    string t="";
    for(ll i=0; i<n; i++) t+='0';

    for(ll i=0; i<n; i++){
        if(s[i]=='0') continue;

        t[i]='1';
        ll curr=0;
        for(ll j=0; j<7; j++){
            t[idx[j]]='1';
            if(check_element(t)) curr+=(1ll<<j);
            t[idx[j]]='0';
        }
        t[i]='0';

        p[i]=curr;
    }

    return p;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…