Tulis program untuk menentukan apakah poligon input cembung . Poligon ditentukan dengan satu garis yang berisi N , jumlah simpul, kemudian garis N yang berisi koordinat x dan y dari setiap simpul. Verteks akan terdaftar searah jarum jam mulai dari titik sembarang.
Contoh 1
memasukkan
4
0 0
0 1
1 1
1 0
keluaran
convex
contoh 2
memasukkan
4
0 0
2 1
1 0
2 -1
keluaran
concave
contoh 3
memasukkan
8
0 0
0 1
0 2
1 2
2 2
2 1
2 0
1 0
keluaran
convex
x dan y adalah bilangan bulat, N <1000 , dan | x |, | y | <1000 . Anda dapat mengasumsikan bahwa poligon input sederhana (tidak ada sisi yang bersilangan, hanya 2 sisi yang menyentuh setiap titik). Kemenangan program terpendek.
"Sederhana" tidak termasuk "tepi berturut-turut adalah non-collinear" ?! Juga, beberapa lagi kasus uji: (0,0) (0,2) (2,2) (2,0) (1,1); dan (1,1) (0,0) (0,2) (2,2) (2,0) - untuk menguji kasus-kasus di mana menemukan simpul cekung membutuhkan pembungkus dari ujung kembali ke awal.
—
Peter Taylor
Pertanyaan ini menua, tetapi ... Pertimbangkan untuk menambahkan contoh cekung dengan dua segmen yang disejajarkan, misalnya modifikasi contoh 2: (0,0), (2,1), (4,2), (1,0) ( 2, -1). Saya membawa ini karena saya mencari-cari contoh 3 tanpa menyadarinya.
—
Jesse Millikan