Submission #79343

#TimeUsernameProblemLanguageResultExecution timeMemory
79343aminraMousetrap (CEOI17_mousetrap)C++14
0 / 100
50 ms14840 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int MOD = (int)1e9 + 7; const int MAXN = (int)1e5 + 7; const int infint = (int)1e9; //try for 25 pts. int n, t, m, dp[MAXN]; vector<int> G[MAXN]; void dfs(int u, int p) { int childs = 0; for (auto v : G[u]) if(v != p) childs++; if(childs == 0) { dp[u] = 0; return; } int fir = -1, sec = -1; for (auto v : G[u]) { if(v == p) continue; dfs(v, u); if(dp[v] > fir) sec = fir, fir = dp[v]; else if(dp[v] > sec) sec = dp[v]; } dp[u] = sec + childs; return; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> t >> m; for (int i = 0; i < n - 1; i++) { int u, v; cin >> u >> v; G[u].push_back(v); G[v].push_back(u); } dfs(m, t); cout << dp[m]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...