[DHBB25 - DX32 - 11] Bài 3: Cây đẹp

Xem dạng PDF

Gửi bài giải

Điểm: 50,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Bạn Thắng rất thích các bài toán về đồ thị. Nhân dịp thi HSG Duyên Hải Bắc Bộ, bạn Thắng gặp một bài về đồ thị như sau: Cho một cây ~n~ đỉnh đánh số ~1, 2, \dots, n~ với ~1~ là đỉnh gốc. Đỉnh ~i~ được tô bởi màu ~a_i~ (~1 \le a_i \le n, a_i \in \mathbb{N}~). Cây con gốc ~u~ được gọi là đẹp nếu như có một màu xuất hiện với hơn một nửa số đỉnh của cây.

Yêu cầu: Từ ~m~ đỉnh ~u_1, u_2, \dots, u_m~ trong tập ~n~ đỉnh đã cho, với mỗi đỉnh ~u_i~ xác định xem cây con gốc ~u_i~ có đẹp hay không. Nếu đẹp in số hiệu màu xuất hiện trên hơn một nửa số đỉnh của cây con này, ngược lại in -1.

Input

  • Dòng đầu tiên chứa hai số nguyên dương ~n, m~ (~1 \le m \le n \le 50000~);
  • Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ (~1 \le a_i \le n~);
  • ~n - 1~ dòng tiếp theo, mỗi dòng chứa hai số nguyên dương ~u, v~ (~1 \le u, v \le n~) mô tả một cạnh của cây nối hai đỉnh ~u, v~;
  • Dòng cuối cùng chứa ~m~ số nguyên ~u_1, u_2, \dots, u_m~ (~1 \le u_i \le n~).

Output

  • Ghi ra ~m~ dòng. Dòng thứ ~i~ in số hiệu màu chiếm hơn một nửa số đỉnh của cây con gốc ~u_i~ nếu cây con này là đẹp, ngược lại in -1.

Sample Input 1

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

Sample Output 1

1
3
1
-1

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.