Cặp ghép không trọng số

Xem dạng PDF

Gửi bài giải


Điểm: 0,13 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
Cuốn DSAP của thầy Lê Minh Hoàng, giáo viên khối chuyên Sư Phạm
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho đồ thị hai phía ~G=\left(X \cup Y, E \right)~; Các đỉnh của ~X~ ký hiệu là ~x_1, x_2, ..., x_m~, các đỉnh của ~Y~ ký hiệu là ~y_1, y_2, ..., y_n~.

Một bộ ghép trên ~G~ là một tập các cạnh thuộc ~E~ đôi một không có đỉnh chung.

Yêu cầu: Hãy tìm bộ ghép cực đại (có nhiều cạnh nhất) trên G.

Input

  • Dòng ~1~: Chứa hai số ~m, n~ ~(1 \leq m, n \leq 100 )~.
  • Các dòng tiếp theo, mỗi dòng chứa hai số nguyên dương ~i, j~ cho biết thông tin về một cạnh ~(x_i, y_j)~ thuộc ~E~.

Output

  • Dòng 1: Ghi số cạnh trong bộ ghép cực đại tìm được (~K~).
  • ~K~ dòng tiếp theo, mỗi dòng ghi thông tin về một cạnh được chọn vào bộ ghép cực đại: Gồm 2 số ~u, v~ thể hiện cho cạnh nối ~(x_u, y_v)~.

Sample Input

4 5
1 1
1 4
2 1
2 2
2 4
3 2
3 3
4 2
4 3

Sample Output

4
1 1
2 4
3 3
4 2

Note

image


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.