Submission #242561

#TimeUsernameProblemLanguageResultExecution timeMemory
242561VEGAnnBurza (COCI16_burza)C++14
0 / 160
770 ms143736 KiB
#include <bits/stdc++.h> #define PB push_back #define sz(x) ((int)x.size()) #define all(x) x.begin(),x.end() #define i2 array<int,2> using namespace std; const int N = 510; const int oo = 2e9; vector<int> g[N]; vector<i2> vc, nw; int n, k, f[N], ht[N], mx_ht[N], cnt[N], pre[N]; void dfs(int v, int pr){ mx_ht[v] = ht[v]; if (ht[v] == k){ f[v] = oo; return; } for (int u : g[v]){ if (u == pr) continue; ht[u] = ht[v] + 1; dfs(u, v); mx_ht[v] = max(mx_ht[v], mx_ht[u]); } if (mx_ht[v] < k){ f[v] = 0; return; } vc.clear(); for (int u : g[v]){ if (u == pr) continue; if (f[u] > 0) vc.PB({f[u], u}); } f[v] = 1; sort(all(vc)); reverse(all(vc)); for (int it = 1; it < sz(vc); it++){ i2 cur = vc[it]; if (cur[0] == oo) { f[v] = oo; break; } f[v] += cur[0]; } } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); #ifdef _LOCAL freopen("in.txt","r",stdin); #endif // _LOCAL cin >> n >> k; for (int i = 1; i < n; i++){ int x, y; cin >> x >> y; x--; y--; g[x].PB(y); g[y].PB(x); } dfs(0, -1); vc.clear(); for (int u : g[0]) if (f[u] > 0) vc.PB({f[u], u}); bool bad = 0; for (int it = 0; it < k && sz(vc) > 0; it++){ if (it + 1 == k){ if (sz(vc) > 1) bad = 1; break; } sort(all(vc)); reverse(all(vc)); nw.clear(); for (int it = 1; it < sz(vc); it++){ int v = vc[it][1]; for (int u : g[v]){ if (u == pre[v]) continue; if (f[u] > 0) nw.PB({f[u], u}); } } vc = nw; } cout << (!bad ? "DA\n" : "NE\n"); return 0; }
#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...