Submission #624755

#TimeUsernameProblemLanguageResultExecution timeMemory
624755MohamedFaresNebiliTorrent (COI16_torrent)C++14
0 / 100
98 ms24896 KiB
#include <bits/stdc++.h> /// #pragma GCC optimize ("Ofast") /// #pragma GCC target ("avx2") /// #pragma GCC optimize("unroll-loops") using namespace std; using ll = long long; using ld = long double; #define ff first #define ss second #define pb push_back #define all(x) (x).begin(), (x).end() #define lb lower_bound const int MOD = 998244353; int N, A, B; vector<int> adj[300005]; int DP[300005]; void dfs(int v, int p) { int C = 1; for(auto u : adj[v]) { if(u == p) continue; if(DP[u] > DP[v] + C) { DP[u] = min(DP[u], DP[v] + C); ++C; } dfs(u, v); } } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N >> A >> B; for(int l = 0; l < N - 1; l++) { int U, V; cin >> U >> V; adj[U].push_back(V); adj[V].push_back(U); } for(int l = 1; l <= N; l++) DP[l] = 2e9; DP[A] = 0; dfs(A, A); DP[B] = 0; dfs(B, B); int res = 0; for(int l = 1; l <= N; l++) res = max(res, DP[l]); cout << res << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...