Thêm bến xe buýt
Xem PDFThành phố ZZZ được quy hoạch theo dạng lưới ô vuông mà ta coi như đặt trong một hệ trục toạ độ Descartes vuông góc Oxy. Các con đường là các đường thẳng \(x=a,y=b\) với \(a,b\) nguyên.
Thành phố hiện có \(N\ (N≤1000)\) bến xe buýt, bến xe \(i\) \((i=1÷N)\) đặt ở toạ độ \((x_i,y_i )\), không có hai bến nào ở cùng toạ độ. Một xe buýt xuất phát từ một bến luôn đi thẳng không rẽ theo một trong hai phương ngang (cùng phương Ox) hoặc dọc (cùng phương Oy). Điều này dẫn đến việc di chuyển bằng xe buýt từ một bến đến một bến khác là không thể thực hiện.
Hội đồng thành phố dự định đặt thêm một số bến xe buýt để đảm bảo có thể di chuyển từ bất kỳ bến xe buýt nào đến bến khác bằng cách đổi xe nhiều lần. Hơn nữa, quãng đường di chuyển phải là tối thiểu, nghĩa là nếu xuất phát từ bến ở toạ độ \((a,b)\) di chuyển đến bến ở toạ độ \((c,d)\) thì luôn có cách đổi tuyến xe buýt để quãng đường di chuyển đúng bằng \((|a-c|+|b-d|)\).
Vì ngân sách hạn chế, tổng số bến xe buýt được phải không vượt quá \(10000\), tức là chỉ có thể xây thêm nhiều nhất \((10000-N)\) bến nữa.
Hãy xác định vị trí của các bến xe buýt cần thêm. Nếu có nhiều phương án cùng thoả mãn tất cả các điều kiện kể trên, có thể đưa ra bất kỳ phương án nào trong số đó.
Input
- Dòng 1: số nguyên \(N\ (2≤N≤1000)\) là số bến xe buýt đã có;
- Dòng \(2…N+1\): dòng \(i+1\) ghi hai số nguyên \(x_i,y_i\ (1≤x_i,y_i≤1000)\) là tọa độ của bến xe buýt thứ \(i\).
Dữ liệu đảm bảo: không có hai bến xe buýt nào ở cùng vị trí, bài toán luôn có nghiệm.
Output
- Dòng 1: số nguyên \(M\ (0≤M≤10000-N)\) là số bến xe buýt cần thêm;
- Dòng \(2…M+1\): mỗi ghi hai số nguyên \(x,y\ (1≤x,y≤1000)\) là tọa độ của một bến xe buýt mới. Các bến mới không được trùng nhau, cũng không được trùng với các bến đã có trước đó.
Scoring
- Subtask \(1\) (\(50\%\) số điểm): \(N ≤ 100; x_i, y_i ≤ 100\)
- Subtask \(2\) (\(50\%\) số điểm): Không có ràng buộc bổ sung

Bình luận (2)