[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