#include "messy.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> restore_permutation(int n, int w, int r) {
srand(time(0));
string curr = "";
for(int i = 0;i<n;i++){
curr+="0";
}
vector<int>ra(n);
iota(ra.begin(),ra.end(),0);
mt19937 gen( 1337 );
std::shuffle( ra.begin(), ra.end(), gen );
for(int i = 0;i<n-1;i++){
curr[ra[i]]='1';
add_element(curr);
}
vector<int>ans(n);
compile_set();
for(int i = 0;i<n;i++){
curr[i]='0';
}
vector<int>pos(n);
iota(pos.begin(),pos.end(),0);
for(int i = 1;i<n;i++){
//attempting to find where first 1 went
vector<int>cur=pos;
int fin = -1;
while(1){
int ind = 0;
curr[cur[ind]]='1';
if(check_element(curr)){
fin=cur[ind];
break;
}
curr[cur[ind]]='0';
swap(cur[ind],cur[cur.size()-1]);
cur.pop_back();
}
assert(fin!=-1);
int fini = -1;
for(int i = 0;i<pos.size();i++){
if(pos[i]==fin){
fini=i;
break;
}
}
swap(pos[fini],pos[pos.size()-1]);
pos.pop_back();
//discovered new character
//i-1th bit went to fin
ans[fin]=ra[i-1];
}
ans[pos[0]]=ra[n-1];
return ans;
}
컴파일 시 표준 에러 (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... |