#include <bits/stdc++.h>
#define ll long long
#define sz(x) int(x.size())
#define pb push_back
#define se second
#define fr first
#define mp make_pair
#define all(x) x.begin(), x.end()
using namespace std;
void add_element(string x);
void compile_set();
bool check_element(string x);
ll N;
bool can(vector<int>p, vector<string>ap)
{
ll i, j, n=N;
map<string,bool>check;
string num="";
num.resize(n,'0');
for(i=0; i<n; i++)
{
num[i]='1';
string fin=num;
for(j=0; j<n; j++)
fin[j]=fin[p[j]];
check[fin]=1;
}
vector<string>v;
num="";
num.resize(n,'0');
for(i=0; i<n; i++)
{
num[i]='1';
if(check[num]==0)
v.pb(num);
}
return ap==v;
}
std::vector<int> restore_permutation(int n, int w, int r)
{
ll i, j;
N=n;
string num="";
num.resize(n,'0');
for(i=0; i<n; i++)
{
num[i]='1';
add_element(num);
}
compile_set();
ll cant=0;
vector<string>v;
num="";
num.resize(n,'0');
for(i=0; i<n; i++)
{
num[i]='1';
if(check_element(num)==0)
v.pb(num);
}
vector<int>ans;
for(i=0; i<n; i++)
ans.pb(i);
if(sz(v)==0)
return ans;
for(i=0; i<n; i++)
{
for(j=i+1; j<n; j++)
{
swap(ans[i],ans[j]);
if(can(ans,v))
return ans;
swap(ans[i],ans[j]);
}
}
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... |