# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
44603 | 2018-04-03T20:49:44 Z | ulna | Paprike (COI18_paprike) | C++11 | 88 ms | 31768 KB |
#include <bits/stdc++.h> using namespace std; // why am I so weak int n, k; int a[100055]; long long dp[100055]; vector<int> g[100055]; int dfs(int v, int par = -1) { dp[v] = a[v]; int res = 0; for (auto u : g[v]) if (u != par) { res += dfs(u, v); dp[v] += dp[u]; } sort(g[v].begin(), g[v].end(), [&] (int u, int v) { return dp[u] > dp[v]; }); for (auto u : g[v]) { if (dp[v] <= k) break; res++; dp[v] -= dp[u]; } return res; } int main() { cin >> n >> k; for (int i = 0; i < n; i++) scanf("%d", &a[i]); for (int i = 0; i + 1 < n; i++) { int x, y; scanf("%d %d", &x, &y); x--, y--; g[x].push_back(y); g[y].push_back(x); } printf("%d\n", dfs(0)); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 68 ms | 18416 KB | Output is correct |
2 | Correct | 67 ms | 20604 KB | Output is correct |
3 | Correct | 67 ms | 22428 KB | Output is correct |
4 | Correct | 70 ms | 24524 KB | Output is correct |
5 | Correct | 68 ms | 26420 KB | Output is correct |
6 | Correct | 69 ms | 28412 KB | Output is correct |
7 | Correct | 88 ms | 30336 KB | Output is correct |
8 | Correct | 61 ms | 31768 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 2680 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |