제출 #166648

#제출 시각아이디문제언어결과실행 시간메모리
166648egekabasBurza (COCI16_burza)C++14
128 / 160
6 ms380 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<ull, ull> pull; typedef pair<ll, ll> pii; typedef pair<ld, ld> pld; int n, k; vector<int> g[1009]; int d[1009]; int dp[1009]; void calcdepth(ll v, ll p){ if(p != -1 && g[1].size() == 1) return; for(auto u : g[v]){ if(u == p) continue; calcdepth(u, v); d[v] = max(d[v], d[u]); } ++d[v]; } void dfs(ll v, ll p, ll cur){ if(d[v] + cur <= k){ dp[v] = 1e9; return; } if(cur == k){ dp[v] = 0; return; } vector<int> vec; for(auto u : g[v]){ if(u == p) continue; dfs(u, v, cur+1); vec.pb(dp[u]); } sort(vec.begin(), vec.end()); int c = 0; for(auto u : vec){ if(c > u){ dp[v] = 0; return; } ++c; } dp[v] = vec[0] + 1; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); cin >> n >> k; for(int i = 0; i < n-1; ++i){ int t1, t2; cin >> t1 >> t2; g[t1].pb(t2); g[t2].pb(t1); } calcdepth(1, -1); dfs(1, -1, 0); if(dp[1] > 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...