Viết chương trình để xác định xem đa giác đầu vào có lồi không . Đa giác được chỉ định với một dòng chứa N , số lượng đỉnh, sau đó N dòng chứa tọa độ x và y của mỗi đỉnh. Các đỉnh sẽ được liệt kê theo chiều kim đồng hồ bắt đầu từ một đỉnh tùy ý.
ví dụ 1
đầu vào
4
0 0
0 1
1 1
1 0
đầu ra
convex
ví dụ 2
đầu vào
4
0 0
2 1
1 0
2 -1
đầu ra
concave
ví dụ 3
đầu vào
8
0 0
0 1
0 2
1 2
2 2
2 1
2 0
1 0
đầu ra
convex
x và y là các số nguyên, N <1000 và | x |, | y | <1000 . Bạn có thể giả sử rằng đa giác đầu vào là đơn giản (không có cạnh nào chéo, chỉ có 2 cạnh chạm vào mỗi đỉnh). Chương trình ngắn nhất sẽ thắng.
"Đơn giản" không bao gồm "các cạnh liên tiếp là không cộng tuyến"?! Ngoài ra, một vài trường hợp thử nghiệm nữa: (0,0) (0,2) (2,2) (2,0) (1,1); và (1,1) (0,0) (0,2) (2,2) (2,0) - để kiểm tra các trường hợp trong đó việc tìm đỉnh lõm đòi hỏi phải quấn từ đầu trở lại bắt đầu.
—
Peter Taylor
Câu hỏi này đã cũ, nhưng ... Hãy xem xét thêm một ví dụ lõm với hai phân đoạn được căn chỉnh, ví dụ: sửa đổi ví dụ 2: (0,0), (2.1), (4.2), (1.0) ( 2, -1). Tôi đưa ra điều này bởi vì tôi làm mờ xung quanh ví dụ 3 mà không nhận ra nó.
—
Jesse Millikan