Submission #479208

#TimeUsernameProblemLanguageResultExecution timeMemory
479208someoneBurza (COCI16_burza)C++14
0 / 160
4 ms5012 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int N = 2e5 + 10, INF = 1e18 + 42; vector<int> adj[N]; int n, k, val[N]; void dfs(int i, int pre) { vector<int> v[4]; for(int j : adj[i]) if(j != pre) { dfs(j, i); v[0].push_back(val[j]); v[1].push_back(0); v[2].push_back(0); } int t = v[0].size(); if(t <= 1) return; for(int j = 1; j < t; j++) v[1][j] = max(v[1][j-1], v[0][j]); for(int j = t-2; j > -1; j--) v[2][j] = max(v[2][j+1], v[0][j]); val[i] = INF; for(int j = 0; j < t; j++) val[i] = min(val[i], max(v[1][j], v[2][j])+1); } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> k; for(int i = 1; i < n; i++) { int a, b; cin >> a >> b; a--, b--; adj[a].push_back(b); adj[b].push_back(a); } dfs(0, -1); if(val[0] < k) 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...