[DHBB25 - DX39 - 11] Bài 3: Thành phố du lịch
Xem dạng PDFTrong 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
Ông Vova cuối cùng cũng đã đến kỳ nghỉ hàng năm của mình. Đất nước mà ông ấy quyết định đi du lịch có thể được biểu diễn dưới dạng ~n~ thành phố có số hiệu từ 1 đến ~n~ và ~m~ con đường hai chiều nối chúng. Tất cả các con đường đều có cùng độ dài và có thể đến bất kỳ thành phố nào từ bất kỳ thành phố nào khác bằng cách đi trên những con đường này. Một đường đi từ thành phố ~a~ đến thành phố ~b~ được định nghĩa là một chuỗi các con đường sao cho bắt đầu từ thành phố ~a~ và tuần tự đi qua các con đường theo trình tự đó sẽ đến thành phố ~b~. Độ dài của một đường đi từ thành phố ~a~ đến thành phố ~b~ được định nghĩa là số lượng con đường trên đường đi đó.
Ông Vova thường xuyên đặt phòng khách sạn đắt nhất ở một trong ~n~ thành phố và sau đó bắt đầu lên kế hoạch cho chuyến hành trình của mình. Để thuận tiện cho việc lập kế hoạch của mình, ông ấy đã ghi lại độ dài của đường đi ngắn nhất cần thiết từ khách sạn đến từng thành phố. Khoảng cách từ khách sạn đến thành phố ~i~ là độ dài của đường ngắn nhất từ khách sạn đến thành phố ~i~.
Quá hào hứng với kỳ nghỉ đã chờ đợi từ lâu của mình, ông Vova hoàn toàn quên mất khách sạn nằm ở thành phố nào. Ông ấy chắc chắn không muốn bỏ lỡ chuyến đi nên yêu cầu bạn xác định xem khách sạn có thể tọa lạc ở thành phố nào.
Yêu cầu: Xác định tất cả các thành phố có thể là nơi đặt khách sạn dựa trên danh sách khoảng cách đã cho.
Input
- Dòng đầu tiên chứa các số tự nhiên ~n~ và ~m~ (~1 \le n < 5 \times 10^4; 1 \le m \le 10^5~).
- Ở dòng thứ ~i~ trong ~m~ dòng tiếp theo chứa 2 số ~u_i~ và ~v_i~ mô tả một con đường nối giữa thành phố ~u_i~ và ~v_i~ (~1 \le u_i, v_i \le n, u_i \ne v_i~). Biết rằng có nhiều nhất một con đường nối giữa hai thành phố bất kỳ.
- Ở dòng cuối cùng có ~n~ số nguyên cho biết số thứ ~i~ biểu thị khoảng cách từ thành phố thứ ~i~ đến thành phố nơi có khách sạn hoặc -1 nếu ông Vova không ghi lại khoảng cách đó (~1 \le d_i < n~).
Output
- Dòng đầu tiên: số lượng thành phố nơi khách sạn có thể tọa lạc.
- Dòng thứ hai: nhãn của các thành phố nơi có thể đặt khách sạn, theo thứ tự tăng dần.
Sample Input 1
7 6
1 2
1 3
3 4
3 5
3 6
5 7
2 -1 -1 -1 -1 -1 3
Sample Output 1
2
4 6
Bình luận