제출 #1170379

#제출 시각아이디문제언어결과실행 시간메모리
1170379ayush_agBurza (COCI16_burza)C++20
0 / 160
1 ms400 KiB
#include <bits/stdc++.h>
using namespace std;
void fastio(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL); 
}
int n,k;
void dfs(vector<vector<int>>& edges,vector<int>& dp,int leaf,int root,int d){
  if(d==k){dp[leaf]=2;return;}
  for(int i=0;i<edges[leaf].size();i++){
    if(edges[leaf][i]==root)continue;
    dfs(edges,dp,edges[leaf][i],leaf,d+1);
  }
  int cnt=0;
  for(int i=0;i<edges[leaf].size();i++){
    if(edges[leaf][i]==root)continue;
    if(dp[edges[leaf][i]]==1 && cnt==0)cnt=1;
    else if(dp[edges[leaf][i]]==2)cnt+=dp[edges[leaf][i]];
  }
  if(cnt<4)dp[leaf]=1;
  else if(cnt==4)dp[leaf]=2;
}
int32_t main() {
  cin>>n>>k;
  vector<vector<int>> edges(n);
  for(int i=0;i<n-1;i++){
    int a,b;cin>>a>>b;
    a-=1;b-=1;
    edges[a].push_back(b);
    edges[b].push_back(a);
  }
  vector<int> dp(n,0);
  dfs(edges,dp,0,-1,0);
  //for(int i=0;i<n;i++)cout<<dp[i]<<" ";
  //cout<<"\n";
  if(dp[0])cout<<"DA\n";
  else cout<<"NE\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...