Problem ID:
convexhull
Points:
3.4 (partial)
Time limit:
1.0s
Memory limit:
256M
Input:
stdin
Output:
stdout
Author:
Problem types
Allowed languages
C, C++, Java, Pascal, Perl, Python
Trên mặt phẳng với hệ trục tọa độ Descartes vuông góc ~Οxy~ cho ~n~ điểm đánh số từ ~1~ tới ~n~, có thể có những điểm trùng nhau nhưng có ít nhất ~3~ điểm không thẳng hàng. Điểm thứ ~i~ có tọa độ ~(x_i,y_i)~. Hãy tìm một đa giác lồi với diện tích nhỏ nhất mà miền giới hạn bởi đa giác (tính cả đường biên) chứa tất cả ~n~ điểm đã cho. (Đa giác lồi được định nghĩa là miền giới hạn bởi một đường gấp khúc khép kín không tự cắt có các đỉnh phân biệt và các góc nhỏ hơn ~180~ độ).
Dữ liệu:
- Dòng ~1~ chứa số nguyên dương ~n~ ~(3≤n≤10^5)~
- ~n~ dòng tiếp theo, dòng thứ ~i~ chứa hai số nguyên ~x_i,y_i~ có giá trị tuyệt đối không quá ~10^9~
Kết quả:
- Dòng ~1~ ghi số đỉnh ~(m)~ của đa giác tìm được
- Dòng ~2~ ghi diện tích đa giác tìm được với đúng ~1~ chữ số sau dấu chấm thập phân.
- ~m~ dòng tiếp theo, dòng thứ ~j~ ghi tọa độ đỉnh thứ ~j~ của đa giác tìm được theo thứ tự sau: Đỉnh trái nhất trong số những đỉnh thấp nhất của bao lồi được đánh số ~1~, các đỉnh còn lại được đánh số theo thứ tự tạo thành đa giác liệt kê theo chiều ngược với chiều kim đồng hồ.
Các số trên một dòng của input/output files được/phải ghi cách nhau ít nhất một dấu cách.
Sample Input
11
-1 4
-4 2
-5 0
0 0
-3 -2
1 -2
5 -2
2 -3
-1 -4
1 -4
3 -4
Sample Output
6
46.0
-1 -4
3 -4
5 -2
-1 4
-4 2
-5 0
Comments