#include <bits/stdc++.h>
#define ll long long
#define sz(x) int(x.size())
#define all(x) x.begin(), x.end()
#define pb push_back
#define mp make_pair
#define fr first
#define se second
using namespace std;
const int MAXN=501;
ll grafo[MAXN][MAXN], pos[MAXN][MAXN];
int count_common_roads(const vector<int>& r);
std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
ll i;
for(i=0; i<sz(u); i++)
{
grafo[u[i]][v[i]]=i;
grafo[v[i]][u[i]]=i;
pos[u[i]][v[i]]=1;
pos[v[i]][u[i]]=1;
}
vector<int>ord;
for(i=0; i<n; i++)
ord.pb(i);
return ord;
do
{
vector<int>ars;
bool con=0;
for(i=0; i<sz(ord)-1; i++)
{
if(pos[ord[i]][ord[i+1]]==0)
{
con=1;
break;
}
ars.pb(grafo[ord[i]][ord[i+1]]);
}
if(con)
continue;
if(count_common_roads(ars)==sz(ars))
return ars;
}while(next_permutation(all(ord)));
return ord;
}
# | 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... |