Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define gc c=getchar()
- #define r(x) read(x)
- #define ll long long
- template<typename T>
- inline void read(T&x){
- x=0;T k=1;char gc;
- while(!isdigit(c)){if(c=='-')k=-1;gc;}
- while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
- }
- const int N=1e5+7;
- int sta[N],tot;
- int cnt[N];
- set<int>G[N];
- int main(){
- // freopen(".in","r",stdin);
- // freopen(".out","w",stdout);
- int n,k;r(n),r(k);
- if(k>10){
- return puts("No"),0;
- }
- for(int i=1;i<n;++i){
- int u,v;r(u),r(v);
- G[u].insert(v);
- G[v].insert(u);
- }
- int dep=0,del=0;
- while(del < n-1 && dep <=k){
- for(int i=1;i<=n;++i){
- if(G[i].size()==1){
- int u=*G[i].begin();
- sta[++tot]=i;
- ++cnt[u];
- }
- }
- for(int i=1;i<=tot;++i){
- int u=sta[i];
- int v=*G[u].begin();
- G[u].erase(v);
- G[v].erase(u);
- if(cnt[v]<3){
- return puts("No"),0;
- }
- }
- del+=tot;
- tot=0;
- ++dep;
- }
- puts(dep==k?"Yes":"No");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement