제출 #1293956

#제출 시각아이디문제언어결과실행 시간메모리
1293956chill7foPaprike (COI18_paprike)C++20
13 / 100
28 ms10996 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 200000 + 5; vector<int> g[MAXN]; int b[MAXN]; int n, k; long long ans = 0; long long dfs(int v, int p) { long long sum = b[v]; // bu alt-ağacın acılıq cəmi for (int u : g[v]) { if (u == p) continue; long long childSum = dfs(u, v); // əgər u alt-ağacının cəmi haddi aşırsa – kəsməliyik if (childSum + sum > k) { ans++; // kəsirik } else { sum += childSum; // birləşdiririk } } return sum; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> k; for (int i = 1; i <= n; i++) cin >> b[i]; for (int i = 0; i < n - 1; i++) { int x, y; cin >> x >> y; g[x].push_back(y); g[y].push_back(x); } dfs(1, -1); cout << ans << "\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...