제출 #210109

#제출 시각아이디문제언어결과실행 시간메모리
210109casperwangPaprike (COI18_paprike)C++14
13 / 100
69 ms12152 KiB
#include <bits/stdc++.h> #define pb push_back using namespace std; const int MAXN = 100000; int n, k; int a, b; int cnt; int v[MAXN+1]; int deg[MAXN+1]; bool vis[MAXN+1]; vector <int> path[MAXN+1]; void DFS(int now, int par) { vis[now] = 1; for (int i : path[now]) { if (vis[i] || i == par) continue; if (v[now] + v[i] > k) cnt++; else v[i] += v[now]; deg[i]--; if (deg[i] == 1) DFS(i, now); } } signed main() { ios_base::sync_with_stdio(0), cin.tie(0); cin >> n >> k; for (int i = 1; i <= n; i++) cin >> v[i]; for (int i = 1; i < n; i++) { cin >> a >> b; path[a].pb(b), deg[a]++; path[b].pb(a), deg[b]++; } for (int i = 1; i <= n; i++) if (deg[i] == 1 && !vis[i]) DFS(i, 0); cout << cnt << "\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...