BROAD - Đường đẹp
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: nhungchuyenhg

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.

Bạn hãy tính số lượng những con đường đẹp.

INPUT: Vào từ file văn bản BROAD.INP:

- Dòng đầu tiên chứa số nguyên N (3 ≤ N ≤ 3.105), 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 a1, a2,…,an (0 ≤ ai ≤ 2) là loại của các thành phố với:

  • ai = 1 có nghĩa là thành phố loại 1
  • ai = 2 có nghĩa là thành phố loại 2
  • ai = 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 vi, ui (1 ≤ vi, ui ≤ N)– các cạnh của cây.

  OUTPUT: Đưa ra file văn bản BROAD.OUT Chỉ có một số nguyên duy nhất là số lượng đường đẹp

BROAD.INP

BROAD.OUT

5

2 0 0 1 2

1 2

2 3

2 4

2 5

1

Ví dụ

Back to Top