#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int mxN = 4e2+10;
int dp[mxN];
vector<int> adj[mxN];
void dfs(int node, int p) {
int mx1 = -1, mx2 = -1;
for(auto it : adj[node]) {
if(it == p) continue;
dfs(it, node);
mx2 = max(mx2, dp[it]+1);
if(mx2 > mx1) swap(mx2, mx1);
}
if(mx2 != -1) dp[node] = mx2;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, k;
cin >> n >> k;
for(int i = 1; i < n; i++) {
int a, b;
cin >> a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
dfs(1, 0);
cout << (dp[1] < k ? "DA" : "NE");
return 0;
}
# | 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... |