public class Main { public static void main(String[] args) { Main solution = new Main(); Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt(); int[] weight = new int[n]; for (int i = 0; i < n; i++) { weight[i] = scanner.nextInt(); } ArrayList<Integer>[] lists = new ArrayList[n + 1]; for (int i = 0; i < lists.length; i++) { lists[i] = new ArrayList<>(); } for (int i = 0; i < n - 1; i++) { int u = scanner.nextInt(); int v = scanner.nextInt(); lists[u].add(v); lists[v].add(u); }
int res = solution.solve(lists, weight); System.out.println(res);
}
static ArrayList<Integer> maxLen = new ArrayList<>(); private int solve(ArrayList<Integer>[] lists, int[] weight) {
LinkedList<Integer> path = new LinkedList<>();
for (int i = 1; i < lists.length; i++) { path.add(i); loopBack(lists, weight, path, i); path.removeLast(); }