#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()
vi resp;
string s;
void build(int l, int r) {
if (l==r) {
return;
}
int m=l+(r-l)/2;
for (int i=l; i<=m; i++) {
s[i]='1';
add_element(s);
s[i]='0';
}
for (int i=l; i<=m; i++) {
s[i]='1';
}
build(m+1,r);
for (int i=l; i<=m; i++) {
s[i]='0';
}
for (int i=m+1; i<=r; i++) {
s[i]='1';
}
build(l,m);
for (int i=m+1; i<=r; i++) {
s[i]='0';
}
}
void get(int l, int r) {
if (l==r) {
resp[find(all(s),'0')-s.begin()]=l;
return;
}
int m=l+(r-l)/2;
int n=s.size();
vi infi(n,0);
vi inse(n,0);
for (int i=0; i<n; i++) {
if (s[i]=='0') {
s[i]='1';
if (check_element(s)) {
infi[i]=1;
}
else {
inse[i]=1;
}
s[i]='0';
}
}
for (int i=0; i<n; i++) {
if (infi[i]) {
s[i]='1';
}
}
get(m+1,r);
for (int i=0; i<n; i++) {
if (infi[i]) {
s[i]='0';
}
if (inse[i]) {
s[i]='1';
}
}
get(l,m);
for (int i=0; i<n; i++) {
if (inse[i]) {
s[i]='0';
}
}
}
vi restore_permutation(int n, int w, int r) {
resp.resize(n);
for (int i=0; i<n; i++) {
s+='0';
}
build(0,n-1);
compile_set();
get(0,n-1);
return resp;
}
컴파일 시 표준 에러 (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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |