Submission #951589

#TimeUsernameProblemLanguageResultExecution timeMemory
951589temmieowoVillage (BOI20_village)C++17
12 / 100
39 ms604 KiB
#include <bits/stdc++.h> #define int long long #define fastio ios::sync_with_stdio(0), cin.tie(0); using namespace std; const int MAX_N = 10+10; const int INF = 2e18; int n; int a, b; vector<vector<int>> G(MAX_N); vector<vector<int>> dis(MAX_N, vector<int>(MAX_N)); void dfs(int start, int now, int pre){ if (pre!=-1) dis[start][now] = dis[start][pre]+1; for (auto x : G[now]){ if (x!=pre){ dfs(start, x, now); } } return; } void solve1(){ // input cin >> n; for (int i=0 ; i<n-1 ; i++){ cin >> a >> b; a--, b--; G[a].push_back(b); G[b].push_back(a); } // init vector<int> v; for (int i=0 ; i<n ; i++){ v.push_back(i); dfs(i, i, -1); } // for (int i=0 ; i<n ; i++){ // for (int j=0 ; j<n ; j++){ // cerr << dis[i][j] << " "; // } // cerr << "\n"; // } // return; // process int ma = -INF, mi = INF; vector<int> ma_ans, mi_ans; do{ int total = 0; for (int i=0 ; i<n ; i++){ if (i==v[i]) goto flag; total += dis[i][v[i]]; } if (total>ma){ ma = total; ma_ans = v; } if (total<mi){ mi = total; mi_ans = v; } flag:; } while (next_permutation(v.begin(), v.end())); cout << mi << " " << ma << "\n"; for (auto x : mi_ans){ cout << x+1 << " "; } cout << "\n"; for (auto x : ma_ans){ cout << x+1 << " "; } cout << "\n"; return; } signed main(){ fastio; int t = 1; while (t--){ solve1(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...