Đường phố Berland
Đề bài
Mô tả
Thủ đô của Berland có nút giao thông, một số cặp nút được nối với nhau bằng đường hai chiều. Giữa mỗi cặp nút có nhiều nhất một con đường, và từ nút bất kỳ đều đi tới được mọi nút khác.
Vì kẹt xe ngày càng nghiêm trọng, ban quản lý thành phố muốn mạng lưới đạt tiêu chuẩn: giữa hai nút giao bất kỳ luôn tồn tại ít nhất hai đường đi không dùng chung con đường nào (hai đường đi đó được phép đi qua chung nút giao).
Hãy xây thêm số con đường ít nhất để tiêu chuẩn trên được thoả mãn. Mỗi con đường mới nối hai nút giao khác nhau, và sau khi xây xong mạng lưới vẫn phải giữ nguyên tính chất giữa mỗi cặp nút có nhiều nhất một con đường (nghĩa là không được xây một con đường trùng với con đường đã có, cũng không được xây hai con đường mới nối cùng một cặp nút).
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và : số nút giao và số con đường hiện có.
- dòng tiếp theo, dòng thứ chứa hai số nguyên , : con đường thứ nối nút và nút .
Dữ liệu ra
- Dòng đầu in ra : số con đường ít nhất cần xây thêm.
- dòng tiếp theo, mỗi dòng in hai số nguyên mô tả một con đường mới. Có thể in các con đường theo thứ tự bất kỳ, và hai đầu mút của mỗi con đường cũng theo thứ tự bất kỳ.
Nếu mạng lưới đã đạt tiêu chuẩn, in ra duy nhất số . Nếu không có cách xây nào thoả mãn, in ra .
Nếu có nhiều đáp án cùng số lượng nhỏ nhất, in ra đáp án bất kỳ.
Ràng buộc
- và
- Không có hai con đường nối cùng một cặp nút
- Đồ thị đã cho liên thông
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 3 1 2 2 3 3 4 |
1 1 4 |
Mạng lưới là một đường thẳng , cả ba con đường đều là cầu. Nối thêm tạo thành một chu trình chứa mọi con đường. |
| 4 4 1 2 2 3 2 4 3 4 |
1 1 3 |
Chỉ con đường là cầu. Nối thêm là đủ; đáp án cũng được chấp nhận. |
| 2 1 1 2 |
-1 | Chỉ có hai nút và chúng đã được nối. Con đường duy nhất có thể xây thêm là , nhưng nó đã tồn tại nên không có cách nào. |
Bình luận