fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. static int sum[];
  11. static int parent[];
  12. public static void dfs(int node,List<Integer>adj[],int b[]){
  13. int s=0;
  14. for(int child:adj[node]){
  15. if(child==parent[node]) continue;
  16. parent[child]=node;
  17. dfs(child,adj,b);
  18. s=s+sum[child];
  19. }
  20. sum[node]=s+b[node];
  21. }
  22. public static void main (String[] args) throws java.lang.Exception
  23. {
  24. Scanner sc = new Scanner(System.in);
  25. int n = sc.nextInt();
  26. int e = sc.nextInt();
  27. List<Integer> adj[]=new ArrayList[n+1];
  28. for(int i=1;i<=n;i++){
  29. adj[i]=new ArrayList<>();
  30. }
  31. for(int i=0;i<e;i++){
  32. int u = sc.nextInt();
  33. int v = sc.nextInt();
  34. adj[u].add(v);
  35. adj[v].add(u);
  36. }
  37. int b[] = new int[n+1];
  38. for(int i=1;i<n+1;i++){
  39. b[i]=sc.nextInt();
  40. }
  41. sum = new int[n+1];
  42. parent = new int[n+1];
  43.  
  44. dfs(1,adj,b);
  45. for(int i=1;i<sum.length;i++){
  46. System.out.println(sum[i]);
  47. }
  48. }
  49. }
Success #stdin #stdout 0.15s 56160KB
stdin
7 6
1 2
1 3
2 4
2 5
3 6
3 7
5 3 6 2 1 4 7
stdout
28
6
17
2
1
4
7