Submission #1135227

#TimeUsernameProblemLanguageResultExecution timeMemory
1135227alir3za_zar3Village (BOI20_village)C++20
12 / 100
26 ms328 KiB
// Alir3za.Zar3 -> Shiraz , Iran
#include <bits/stdc++.h>
using namespace std;
#define         int          long long
#define   loop(i , l , r)    for (int i=l; i<=r; i+=1)
#define    arc(i , r , l)    for (int i=r; i>=l; i-=1)

const int N = 10+7;
int n,mn=1e18,mx=0 , q[N][N];
vector<int> e[N];

void Dfs (int v , int p , int rt , int d)
{
    q[rt][v] = d;
    for (auto to : e[v])
    {
        if (to == p){ continue; }
        Dfs(to,v,rt,d+1);
    }
}

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);     cout.tie(0);
 
    cin >> n;
    loop(i,1,n-1)
    {
        int u,v; cin >> u >> v;
        e[u].push_back(v);
        e[v].push_back(u);
    }
    loop(i,1,n)
    {
        Dfs(i , i , i , 0);
    }
    int p[n+1],A[n+1],B[n+1];
    loop(i,1,n){ p[i]=i; }
    
    do { int vl = 0; bool mrk=0;
        loop(i,1,n)
        {
            if (p[i]==i)
            { 
                mrk=1; break; 
            }
            vl += q[i][p[i]];
        }
        if (mrk){ continue; }
        if (vl<mn)
        { 
            mn=vl; 
            loop(i,1,n){ A[i]=p[i]; }
        }
        if (vl>mx)
        { 
            mx=vl; 
            loop(i,1,n){ B[i]=p[i]; }
        }
    } while (next_permutation(p+1,p+1+n));
    cout << mn << " " << mx << '\n';
    loop(i,1,n){ cout << A[i] << " "; }
    cout << '\n';
    loop(i,1,n){ cout << B[i] << " "; }
    cout << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...