#include <bits/stdc++.h>
using namespace std;
#define all(c) (c).begin(), (c).end()
#define sz(c) (int)(c).size()
#define vt vector
#define pb push_back
const string yes = "DA";
const string no = "NE";
const int INF = 1e9;
const int mxN = 400;
vt<int> adj[mxN];
int dp[mxN];
void dfs(int v, int par){
int m=INF;
int t=0;
for (int u: adj[v]){
if (u == par) continue;
dfs(u, v);
t++;
m = min(m, dp[u]);
}
if (t == 1) dp[v] = 0;
else dp[v] = m+1;
}
void solve(){
int n,k; cin>>n>>k;
for (int i=0;i<n-1;i++) {
int u,v; cin>>u>>v; u--,v--;
adj[u].pb(v); adj[v].pb(u);
}
dfs(0, -1);
cout << (dp[0] <= k ? yes : no) << endl;
}
int main(){
solve();
}
# | 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... |