Mocha và Diana
Nộp bài giải
Điểm:
4,00 (OI)
Giới hạn thời gian:
0.5s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Một rừng là một đồ thị vô hướng không có chu trình (không bắt buộc liên thông).
Mocha và Diana đều có một rừng với đỉnh được đánh số từ đến . Họ muốn thêm các cạnh vào rừng của mình sao cho:
- Sau khi thêm, cả hai đồ thị vẫn là rừng (không xuất hiện chu trình).
- Họ phải thêm các cạnh giống hệt nhau: nếu cạnh được thêm vào rừng của Mocha thì cạnh cũng được thêm vào rừng của Diana, và ngược lại.
Hãy tìm số lượng cạnh tối đa có thể thêm và liệt kê các cạnh đó.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , (; ) — số đỉnh và số cạnh ban đầu trong rừng của Mocha và Diana.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (; ) — một cạnh trong rừng của Mocha.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (; ) — một cạnh trong rừng của Diana.
Dữ liệu đảm bảo cả hai đồ thị ban đầu đều là rừng.
Dữ liệu ra
- Dòng đầu chứa một số nguyên — số cạnh tối đa có thể thêm.
- dòng tiếp theo, mỗi dòng chứa hai số nguyên và (; ) — cạnh thứ được thêm.
Nếu có nhiều đáp án thỏa mãn, in ra bất kỳ.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 8 1 2 1 7 2 6 1 5 |
5 1 2 1 3 1 4 1 8 5 7 |
Có thể thêm cạnh sao cho cả hai rừng vẫn không có chu trình. Đây là một đáp án hợp lệ; vẫn còn nhiều đáp án khác. |
| 5 3 2 5 4 2 1 4 3 4 3 1 4 |
1 1 5 |
Rừng Mocha có hai thành phần và ; rừng Diana có hai thành phần và với một đỉnh cô lập. Cạnh nối hai thành phần trong cả hai rừng mà không tạo chu trình. |
| 3 2 2 1 2 2 3 1 2 1 3 |
0 | Rừng Mocha là chuỗi , rừng Diana cũng là cây gồm cạnh và . Cả hai đã liên thông nên không thể thêm cạnh nào. |
Bình luận