| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1359933 | ibo | Paprike (COI18_paprike) | C++20 | 25 ms | 16500 KiB |
#include <bits/stdc++.h>
using namespace std;
#define int long long
// #define ll long long
#define endl "\n"
#define run ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const int MAX = 100010;
const int inf = 1e18;
const int MOD = 1e9+7;
unordered_map<int,vector<int>> graphs;
vector<bool> visited;
int h[MAX];
int sum=0;
int cnt=0;
int n,k;
int dfs(int node,int parent){
visited[node]=1;
sum=h[node];
for(auto i:graphs[node]){
if(i==parent) continue;
int childsum = dfs(i,node);
sum+=childsum;
if(sum>k){
cnt++;
sum=0;
}
}
return sum;
}
signed main(){
run;
system("Color 0A");
cin >> n >> k;
visited.resize(n+1,0);
for(int i=1; i<=n; i++) cin >> h[i];
int m = n-1;
while(m--){
int u,v;
cin >> u >> v;
graphs[u].push_back(v);
graphs[v].push_back(u);
}
dfs(1,0);
cout << cnt;
}
// By VaLiYeV
Compilation message (stderr)
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
