Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Người đăng:
Nguồn bài:
TST VN 2017
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho ~n~ đoạn thẳng có tọa độ hai đầu mút nguyên và song song với một trong hai trục tọa độ trên mặt phẳng, hai đoạn thẳng bất kì không có quá một điểm chung.

Mỗi lần đặt bút vẽ, ta xuất phát từ một điểm bất kì nằm trên một trong ~n~ đoạn thẳng, di bút song song với một trong hai trục tọa độ sao cho bút vẽ luôn nằm trên một trên ~n~ đoạn thẳng và chỉ nhấc bút lên ở điểm kết thúc.

Tìm số lần đặt bút vẽ nhỏ nhất phủ kín ~n~ đoạn thẳng và không có đoạn thẳng nào được vẽ quá một lần.

Input

  • Dòng đầu tiên chứa một số nguyên dương ~n~, số đoạn thẳng (~n\le 1000~).
  • ~n~ dòng tiếp theo, dòng thứ ~i~ chứa bốn số nguyên ~x,y,u,v~ thể hiện rằng đoạn thứ ~i~ nối hai điểm ~(x,y)~ và ~(u,v)~ (~|x|,|y|,|u|,|v|\le 1000~).

Output

  • Dòng đầu tiên chứa số lần đặt bút vẽ nhỏ nhất.
  • Mỗi nhóm dòng tiếp theo tương ứng với mỗi lần đặt bút vẽ:
    • Dòng đầu tiên là số điểm đi qua ~k~ (nếu một điểm được đi qua nhiều lần, tính tất cả các lần đó).
    • ~k~ dòng tiếp theo, mỗi dòng chứa hai số nguyên ~x,y~ là các điểm đi qua theo thứ tự di bút.

Sample

Input
6
2 1 2 4
2 4 6 4
6 4 6 1
6 1 2 1
4 -1 4 6
3 2 5 2
Output
2
6
4 6
4 5
4 4
4 3
4 2
3 2

19
4 -1
4 0
4 1
5 1
6 1
6 2
6 3
6 4
5 4
4 4
3 4
2 4
2 3
2 2
2 1
3 1
4 1
4 2
5 2


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.