제출 #1293829

#제출 시각아이디문제언어결과실행 시간메모리
1293829zeyd123Paprike (COI18_paprike)C++20
13 / 100
74 ms10788 KiB
#include <bits/stdc++.h> using namespace std; /* ---===ASCII help===--- '0' -> 48 '9' -> 57 'A' -> 65 'Z' -> 90 'a' -> 97 'z' -> 122 */ const long long mod = 1e9 + 7; int n, k; vector<int> h; vector<vector<int>> g; int cuts = 0; long long dfs(int u, int parent) { long long sum = h[u]; for (int v : g[u]) { if (v == parent) continue; long long child_sum = dfs(v, u); if (sum + child_sum <= k) sum += child_sum; else cuts++; } return sum; } void solve() { cin >> n >> k; h.resize(n); for (int i = 0; i < n; i++) cin >> h[i]; g.resize(n); for (int i = 0; i < n - 1; i++) { int x, y; cin >> x >> y; x--; y--; g[x].push_back(y); g[y].push_back(x); } long long ans = dfs(0, -1); cout << cuts << "\n"; } int main() { int t = 1; //cin >> t; while (t--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...