Minimum Weight

All submissions for this problem are available.
You are given a tree with N nodes and N1 edges. We define a region as a set of nodes, such that if we remove all other nodes from the tree, these nodes still remain connected i.e. there exists a path between any two remaining nodes.
All the nodes have a weight associated to them. You are given Q queries. Each query has a number k. You have to find number of regions, such that the minimum weight among all the nodes of that region is exactly k. Output your answer modulo 10^9 + 7.
Input
The first line will contain N, the number of nodes. Next line will contain N integers. The ith integer will indicate weight, the weight of ith node. Next N1 lines will contain 2 integers "x y" (quotes for clarity) denoting an edge between node x and node y. Next line will contain a number Q , the number of queries. Next Q lines will contain an integer k , which is as described in problem statement.
NOTE:nodes are numbered 1 indexed
Output
You have to output Q lines, each containing a single integer, the answer to the corresponding query.
Constraints
 1 ≤ N ≤ 1500
 1 ≤ x,y ≤ n
 1 ≤ Q ≤ 2000
 1 ≤ weight ≤ 10^9
Example
Input: 4 2 4 3 1 4 3 4 2 4 1 4 1 2 3 4 Output: 8 1 1 1
Author:  go_on 
Tags  go_on 
Date Added:  16022016 
Time Limit:  1 sec 
Source Limit:  50000 Bytes 
Languages:  C, CPP14, JAVA, PYTH, PYTH 3.5, PYPY, CS2, PAS fpc, PAS gpc, RUBY, PHP, GO, NODEJS, HASK, SCALA, D, PERL, FORT, WSPC, ADA, CAML, ICK, BF, ASM, CLPS, PRLG, ICON, SCM qobi, PIKE, ST, NICE, LUA, BASH, NEM, LISP sbcl, LISP clisp, SCM guile, JS, ERL, TCL, PERL6, TEXT, SCM chicken, CLOJ, FS 
Comments
 Please login at the top to post a comment.
SUCCESSFUL SUBMISSIONS
Fetching successful submissions
HELP
If you are still having problems, see a sample solution here. 