#include <bits/stdc++.h>
#define NMAX 50000
#define LOG 17
#define ll long long int
#define BASE 1024
#define MOD 1000000009
using namespace std;
ifstream fin("cod.in");
ofstream fout("cod.out");
int n,k;
int dp[NMAX+1];
vector<int> adj[NMAX+1];
void dfs(int x,int p)
{
int mx1=0,mx2=0;
for(int y : adj[x])
{
if(y!=p)
{
dfs(y,x);
if(mx1 <= dp[y])
{
mx2=mx1;
mx1=dp[y];
}
else if(mx2 < dp[y])
{
mx2=dp[y];
}
}
}
dp[x] = 1 + mx2;
}
int main()
{
cin >> n >> k;
for(int i=1;i<n;i++)
{
int x,y;
cin >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
dfs(1,0);
// for(int i=1;i<=n;i++)
// {
// cout << dp[i] << " ";
// }
cout << (dp[1] <= k ? "DA" : "NE");
}
# | 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... |