D. Chloe and pleasant prizes
time limit per test

2 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

Generous sponsors of the olympiad in which Chloe and Vladik took part allowed all the participants to choose a prize for them on their own. Christmas is coming, so sponsors decided to decorate the Christmas tree with their prizes.

They took n prizes for the contestants and wrote on each of them a unique id (integer from 1 to n). A gift i is characterized by integer ai — pleasantness of the gift. The pleasantness of the gift can be positive, negative or zero. Sponsors placed the gift 1 on the top of the tree. All the other gifts hung on a rope tied to some other gift so that each gift hung on the first gift, possibly with a sequence of ropes and another gifts. Formally, the gifts formed a rooted tree with n vertices.

The prize-giving procedure goes in the following way: the participants come to the tree one after another, choose any of the remaining gifts and cut the rope this prize hang on. Note that all the ropes which were used to hang other prizes on the chosen one are not cut. So the contestant gets the chosen gift as well as the all the gifts that hang on it, possibly with a sequence of ropes and another gifts.

Our friends, Chloe and Vladik, shared the first place on the olympiad and they will choose prizes at the same time! To keep themselves from fighting, they decided to choose two different gifts so that the sets of the gifts that hang on them with a sequence of ropes and another gifts don't intersect. In other words, there shouldn't be any gift that hang both on the gift chosen by Chloe and on the gift chosen by Vladik. From all of the possible variants they will choose such pair of prizes that the sum of pleasantness of all the gifts that they will take after cutting the ropes is as large as possible.

Print the maximum sum of pleasantness that Vladik and Chloe can get. If it is impossible for them to choose the gifts without fighting, print Impossible.

Input

The first line contains a single integer n (1 ≤ n ≤ 2·105) — the number of gifts.

The next line contains n integers a1, a2, ..., an ( - 109 ≤ ai ≤ 109) — the pleasantness of the gifts.

The next (n - 1) lines contain two numbers each. The i-th of these lines contains integers ui and vi (1 ≤ ui, vi ≤ nui ≠ vi) — the description of the tree's edges. It means that gifts with numbers ui and vi are connected to each other with a rope. The gifts' ids in the description of the ropes can be given in arbirtary order: vi hangs on ui or ui hangs on vi.

It is guaranteed that all the gifts hang on the first gift, possibly with a sequence of ropes and another gifts.

Output

If it is possible for Chloe and Vladik to choose prizes without fighting, print single integer — the maximum possible sum of pleasantness they can get together.

Otherwise print Impossible.

Examples
input
8
0 5 -1 4 3 2 6 5
1 2
2 4
2 5
1 3
3 6
6 7
6 8
output
25
input
4
1 -5 1 1
1 2
1 4
2 3
output
2
input
1
-1
output
Impossible
题意: 就是有一颗树问你两个子树和是最大是多少
思路:先算出来没个节点的价值 然后树上dp。dp[i]代表着这颗子树上的最大的子树有多大 dp[i]=max(dp[i],dp[x])x是i的子树
没有代码···················

最新文章

  1. 使用Windbg在XP下Heap追踪失败的原因
  2. python 最长公共子序列
  3. python 内置函数 getattr
  4. C# 数学运算符
  5. poj 2752 Seek the Name, Seek the Fame(KMP需转换下思想)
  6. Mysql的收获
  7. Linux下搭建tomcat和jre的环境
  8. Linux下Crontab定时任务的使用教程 以及 无法执行定时任务的解决方案
  9. U盘制作微pe工具箱(实战)
  10. spring(IOC)动态代理
  11. 搞Java
  12. shell中的常用条件判断
  13. 深入理解Python异步编程(上)
  14. (原)关于MEPG-2中的TS流数据格式学习
  15. kubernetes 实战4_命令_Configure Pods and Containers
  16. 17-matlab例题练习
  17. 关于spring中Assert的应用(方法入参检测工具类)
  18. 使用Apache commons-codec Base64实现加解密(转)
  19. MyBatis动态SQL foreach标签实现批量插入
  20. Xcode 8 的 Debug 新特性 —- WWDC 2016 Session 410 & 412 学习笔记

热门文章

  1. 我的CPG插件 (什么是CPG,就是跟号称全球唯一C++编写的魔镜是一样的格式的)
  2. lanmp之一 (动静分离)
  3. printf对齐
  4. 如何做JS 单体模式的设计---->>js设计模式<<-------单体模式
  5. iOS版本更新在APP中直接访问AppStore
  6. Git 小技巧
  7. MYsql 数据库密码忘记(Window)
  8. Redis 慢速入门(一)
  9. 感知机(perceptron)概念与实现
  10. nodejs学习