제출 #1199119

#제출 시각아이디문제언어결과실행 시간메모리
1199119pensiveUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <bits/stdc++.h>
#include "messy.h"

using namespace std;
#define ll long long
#define REP(a,i,n) for (ll i=a;i<n;i++)

vector<int> sagot;

void adds(int n, int lo, int hi) {
    if (lo==hi) return;
    int mid = (lo+hi)/2;
    string s = string(n, '1');
    REP(lo, i, hi+1) s[i]='0';
    REP(lo, i, mid+1) {
        s[i]='1';
        add_element(s);
        s[i] = '0';
    }
    adds(n, lo, mid); adds(n, mid+1, hi);
}

void solve(int n, vector<int> can, int lo, int hi) {
    if (hi-lo==0) {
        sagot[can[0]] = lo;
        return;
    }
    vector<int> left, right;
    string s = string(n, '1');
    for (auto u : can) {
        s[u] = '0';
    }
    for (auto u: can) {
        s[u]='1';
        if (check_element(s)) { 
            left.push_back(u);
        }
        else {
            right.push_back(u);
        }
        s[u]='0';
    }
    int mid = (lo+hi)/2;
    solve(n, left, lo, mid); solve(n, right, mid+1, hi);
}

vector<int> restore_permutation(int n, int w, int r) {
    sagot.resize(n);
    adds(n, 0, n-1);
    compile_set();
    vector<int> cans;
    REP(0, i, n) {
        cans.push_back(i);
    }
    solve(n, cans, 0, n-1);
    return sagot;
}

컴파일 시 표준 에러 (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...