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

View as PDF

Submit solution


Points: 0.13 (partial)
Time limit: 0.38s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Cuốn DSAP của thầy Lê Minh Hoàng, giáo viên khối chuyên Sư Phạm
Problem type
Allowed languages
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


Comments

Please read the guidelines before commenting.


There are no comments at the moment.