#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
#define endl '\n'
#define int ll
using namespace std;
vector<vector<int>> graph;
vector<int> dp;
int dfs(int v, int p)
{
if (graph[v].size() - (p == -1 ? 0 : 1) <= 1)
return dp[v] = 1;
multiset<int> mx;
for (int u : graph[v])
{
if (u == p)
continue;
mx.insert(dfs(u, v));
}
mx.erase(mx.find(*mx.rbegin()));
return dp[v] = *mx.rbegin() + 1;
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N, K;
cin >> N >> K;
graph = vector<vector<int>>(N);
dp = vector<int>(N);
for (int i = 0; i < N - 1; i++)
{
int a, b;
cin >> a >> b;
--a;
--b;
graph[a].push_back(b);
graph[b].push_back(a);
}
cout << (dfs(0, -1) <= K ? "DA" : "NE") << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |