[Beginner Free Contest 28] AGRTREE

Xem dạng PDF

Gửi bài giải

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

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

Ngày xưa ngày xưa, có một vương quốc tên là DH. Vương quốc gồm có ~N~ thành phố. Các thành phố được đánh số từ ~1~ đến ~N~. Để cho dễ quản lý, nhà vua đã tổ chức vương quốc theo dạng cây với ~N -1~ con đường nối giữa các thành phố và thành phố gốc là thành phố ~1~. Thành phố ~v~ được xem là con (con cháu) của thành phố ~u~ nếu ~u~ nằm trên đường đi từ ~v~ đến thành phố ~1~.

Nhà vua muốn phát triển vương quốc theo hướng nông nghiệp nên mỗi thành phố của vương quốc sẽ được trồng duy nhất một loại lương thực. Các loại lương thực được đánh số từ ~1~ đến ~M~. Thành phố thứ ~i~ sẽ trồng loại lương thực là ~A_i~ ~(1 \le A_i \le M)~. Một thành phố được gọi là phát triển nếu tất cả các loại lương thực từ ~1~ đến ~M~ đều được trồng trong ít nhất một trong các thành phố con của thành phố đó hoặc trong chính thành phố đó.

Với mỗi thành phố từ ~1~ đến ~N~, bạn hãy giúp nhà vua xác định xem thành phố đó có phải là thành phố phát triển hay không.

Dữ liệu

  • Dòng đầu tiên chứa hai số nguyên ~N~ và ~M~ ~(1 \le M \le N \le 10^5)~.

  • Dòng thứ hai gồm ~N~ số nguyên ~A_1, A_2, \ldots, A_N~ ~(1 \le A_i \le M)~.

  • ~N - 1~ dòng tiếp theo, mỗi dòng gồm hai số nguyên ~u, v~ ~(1 \le u, v \le N)~ tương ứng với một con đường hai chiều nối hai thành phố ~u~ và ~v~.

Kết quả

Gồm một dòng duy nhất chứa xâu ~S~ độ dài ~N~, với ~S_i~ ~(1 \le i \le N)~ là 1 nếu thành phố thứ ~i~ là thành phố phát triển, là 0 nếu ngược lại.

Ví dụ

Sample Input

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

Sample Output

1100100

Giới hạn

  • 30% số test tương ứng với ~N \le 1000~.

  • 70% số test còn lại tương ứng với ~N \le 10^5~.


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.