Submission #915165

#TimeUsernameProblemLanguageResultExecution timeMemory
9151653as8Village (BOI20_village)C++14
12 / 100
1008 ms856 KiB
#include <bits/stdc++.h>

#define ll long long
#define endl "\n"
#define fastIO cin.tie(nullptr); cout.tie(nullptr); ios::sync_with_stdio(false);

#define mid ((l + r) / 2)
#define lChild ((index * 2) + 1)
#define rChild ((index * 2) + 2)

using namespace std;

void dfs(vector<vector<ll> >& graph, vector<ll>& dist, ll startIndex, ll p, ll depth = 0) {

    dist[startIndex] = depth;
    for(auto el : graph[startIndex]) {
        if(el == p) continue;

        dfs(graph, dist, el, startIndex, depth + 1);
    }
}


void solve(ll _) {

    ll n; cin>>n;

    vector<vector<ll> > graph(n);
    for(int i = 0; i < n - 1; i++) {
        ll x, y; cin>>x>>y;
        x--; y--;

        graph[x].push_back(y);
        graph[y].push_back(x);
    }

    vector<vector<ll> > dist(n, vector<ll>(n, -1));

    for(int i = 0; i < n; i++) {
        dfs(graph, dist[i], i, -1);

    }


    vector<ll> arr(n);
    for(int i = 0; i < n; i++) arr[i] = i;

    vector<ll> mnA, mxA;

    ll mn = LLONG_MAX, mx = LLONG_MIN;
    do {

        bool is = true;
        for(int i = 0; i < n; i++) {
            is &= (arr[i] != i);
        }

        if(!is) continue;

        ll d = 0;
        for(int i = 0; i < n; i++) {
            d += dist[i][arr[i]];
        }

        if(mn > d) {
            mnA = arr;
        }
        if(mx < d) {
            mxA = arr;
        }

        mn = min(mn, d);
        mx = max(mx, d);

    } while(next_permutation(arr.begin(), arr.end()));


    cout<<mn<<" "<<mx<<endl;
    for(auto el : mnA) cout<<el + 1<<" ";
    cout<<endl;

    for(auto el : mxA) cout<<el + 1<<" ";
    cout<<endl;
}

int main() {
    fastIO

    //freopen("file.in", "r", stdin);
    //freopen("file.out", "w", stdout);

    ll t = 0; solve(t);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...