fork(5) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  5. #define endl "\n"
  6. #define int long long
  7.  
  8. const int N = 1e5 + 5;
  9.  
  10. int n, x;
  11. int a[N], sum[N];
  12. vector<int> g[N];
  13.  
  14. int dfs(int u, int par)
  15. {
  16. int sum = a[u];
  17. for(auto &it:g[u])
  18. {
  19. if(it == par)
  20. continue;
  21. sum += dfs(it, u);
  22. }
  23. sum = max(sum, -x);
  24. return sum;
  25. }
  26.  
  27. int32_t main()
  28. {
  29. IOS;
  30. int t;
  31. cin>>t;
  32. while(t--)
  33. {
  34. memset(sum, 0, sizeof(sum));
  35. cin>>n>>x;
  36. for(int i=1;i<=n;i++)
  37. {
  38. cin>>a[i];
  39. g[i].clear();
  40. }
  41. for(int i=1;i<=n-1;i++)
  42. {
  43. int u, v;
  44. cin>>u>>v;
  45. g[u].push_back(v);
  46. g[v].push_back(u);
  47. }
  48. int ans = dfs(1, 0);
  49. cout<<ans<<endl;
  50. }
  51. return 0;
  52. }
Success #stdin #stdout 0s 19144KB
stdin
Standard input is empty
stdout
0
0