[THHV 2019 - CTN - 11] Bài 2: ĐƯỜNG ĐẸP
Xem dạng PDF
Gửi bài giải
Điểm:
10,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Người đăng:
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
Có ~N~ thành phố trong một đất nước được kết nối bằng đường hai chiều. Một số thành phố là thành phố loại 1, một số là loại 2 và một số chưa được xếp loại. Đất nước được đảm bảo rằng có chứa ít nhất một thành phố loại 1, một thành phố loại 2. Bạn chọn một con đường và loại bỏ nó ra khỏi hệ thống đường đi khiến đất nước bị chia thành hai phần. Đó sẽ là một con đường đẹp nếu nó chia đất nước thành hai phần mà kết quả mỗi phần không chứa các thành phố của cả hai loại 1 và 2.
Yêu cầu: Hãy tính số lượng những con đường đẹp.
Input
- Dòng đầu tiên chứa số nguyên ~N~ (~3 \le N \le 3 \times 10^5~), số thành phố. Các thành phố được dán nhãn với số lượng từ 1 đến ~N~.
- Dòng thứ hai chứa ~N~ số nguyên ~a_1, a_2, \dots, a_n~ (~0 \le a_i \le 2~) là loại của các thành phố với:
- ~a_i = 1~ có nghĩa là thành phố loại 1
- ~a_i = 2~ có nghĩa là thành phố loại 2
- ~a_i = 0~ có nghĩa là thành phố chưa được xếp loại
- Dòng thứ ~i~ của ~N-1~ dòng tiếp theo chứa hai số nguyên ~v_i, u_i~ (~1 \le v_i, u_i \le N~) là các cạnh của cây.
Output
Đưa ra một số nguyên duy nhất là số lượng đường đẹp.
Sample Input 1
5
2 0 0 1 2
1 2
2 3
2 4
2 5
Sample Output 1
1

Bình luận