제출 #79346

#제출 시각아이디문제언어결과실행 시간메모리
79346aminraMousetrap (CEOI17_mousetrap)C++14
25 / 100
1022 ms86908 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)1e6 + 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 = 0, sec = 0;
	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...