入力ポリゴンが凸面かどうかを判断するプログラムを作成します。ポリゴンを含む一行で指定された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の変更のように、2つのセグメントが整列した凹面の例を追加することを検討してください:(0,0)、(2,1)、(4,2)、(1,0)( 2、-1)。例3を気付かずにごまかしたので、これを取り上げます。
—
ジェシーミリカン