Напишіть програму, щоб визначити, чи введений багатокутник випуклий . Багатокутник задається однією лінією, що містить N , кількість вершин, потім N рядків, що містять координати x і y кожної вершини. Вершини будуть перераховані за годинниковою стрілкою, починаючи з довільної вершини.
приклад 1
вхід
4
0 0
0 1
1 1
1 0
вихід
convex
приклад 2
вхід
4
0 0
2 1
1 0
2 -1
вихід
concave
приклад 3
вхід
8
0 0
0 1
0 2
1 2
2 2
2 1
2 0
1 0
вихід
convex
x і y - цілі числа, N <1000 , і | x |, | y | <1000 . Ви можете припустити, що вхідний многокутник простий (жоден з ребер не перетинається, лише 2 ребра торкаються кожної вершини). Найкоротша програма виграє.
"Простий" не включає "послідовні ребра неколінеарні" ?! Також ще кілька тестів: (0,0) (0,2) (2,2) (2,0) (1,1); та (1,1) (0,0) (0,2) (2,2) (2,0) - для перевірки випадків, коли знаходження увігнутої вершини вимагає обгортання від кінця назад до початку.
—
Пітер Тейлор
Це питання старіє, але ... Розглянемо додавання увігнутого прикладу з двома вирівняними сегментами, наприклад, модифікацією прикладу 2: (0,0), (2,1), (4,2), (1,0) ( 2, -1). Я підводжу це, тому що я роздував приклад 3, не усвідомлюючи цього.
—
Джессі Мілікан