यह निर्धारित करने के लिए एक प्रोग्राम लिखें कि क्या इनपुट बहुभुज उत्तल है । बहुभुज एन के साथ एक पंक्ति , वर्टिकल की संख्या के साथ निर्दिष्ट किया जाता है , फिर प्रत्येक पंक्ति के एक्स और वाई निर्देशांक वाले एन लाइनें । कोने को एक मनमाने ढंग से शीर्ष से शुरू करके दक्षिणावर्त सूचीबद्ध किया जाएगा।
उदाहरण 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 के आसपास फैंक दिया।
—
जेसी मिलिकन