CF1092F.Tree with Maximum Cost

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a tree consisting exactly of nn vertices. Tree is a connected undirected graph with n1n-1 edges. Each vertex vv of this tree has a value ava_v assigned to it.

Let dist(x,y)dist(x, y) be the distance between the vertices xx and yy . The distance between the vertices is the number of edges on the simple path between them.

Let's define the cost of the tree as the following value: firstly, let's fix some vertex of the tree. Let it be vv . Then the cost of the tree is i=1ndist(i,v)ai\sum\limits_{i = 1}^{n} dist(i, v) \cdot a_i .

Your task is to calculate the maximum possible cost of the tree if you can choose vv arbitrarily.

输入格式

The first line contains one integer nn , the number of vertices in the tree ( 1n21051 \le n \le 2 \cdot 10^5 ).

The second line of the input contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 1ai21051 \le a_i \le 2 \cdot 10^5 ), where aia_i is the value of the vertex ii .

Each of the next n1n - 1 lines describes an edge of the tree. Edge ii is denoted by two integers uiu_i and viv_i , the labels of vertices it connects ( 1ui,vin1 \le u_i, v_i \le n , uiviu_i \ne v_i ).

It is guaranteed that the given edges form a tree.

输出格式

Print one integer — the maximum possible cost of the tree if you can choose any vertex as vv .

输入输出样例

  • 输入#1

    8
    9 4 1 7 10 1 6 5
    1 2
    2 3
    1 4
    1 5
    5 6
    5 7
    5 8
    

    输出#1

    121
    
  • 输入#2

    1
    1337
    

    输出#2

    0
    

说明/提示

Picture corresponding to the first example:

You can choose the vertex 33 as a root, then the answer will be 29+14+01+37+310+41+46+45=18+4+0+21+30+4+24+20=1212 \cdot 9 + 1 \cdot 4 + 0 \cdot 1 + 3 \cdot 7 + 3 \cdot 10 + 4 \cdot 1 + 4 \cdot 6 + 4 \cdot 5 = 18 + 4 + 0 + 21 + 30 + 4 + 24 + 20 = 121 .

In the second example tree consists only of one vertex so the answer is always 00 .

首页