結果
| 問題 |
No.199 星を描こう
|
| コンテスト | |
| ユーザー |
HIROPON87069639
|
| 提出日時 | 2016-02-21 15:02:05 |
| 言語 | Python2 (2.7.18) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,308 bytes |
| コンパイル時間 | 115 ms |
| コンパイル使用メモリ | 7,072 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-09-22 12:34:07 |
| 合計ジャッジ時間 | 1,249 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 22 WA * 3 |
ソースコード
# -*- coding: utf-8 -*-
import math
def sita(X1, Y1):
if X1 == 0 and Y1 == 0:
return 0
else:
R = (X1 ** 2 + Y1 ** 2) ** 0.5
if Y1 > 0:
S = math.acos(X1 / R)
elif Y1 < 0:
S = 2 * math.pi - math.acos(X1 / R)
elif Y1 == 0 and X1 > 0:
S = 0.0
elif Y1 == 0 and X1 < 0:
S = math.pi
return S
def ch(X1, Y1, X2, Y2, X3, Y3):
vec1 = [X2 - X1, Y2 - Y1]
vec2 = [X3 - X1, Y3 - Y1]
sit1 = sita(vec1[0], vec1[1])
sit2 = sita(vec2[0], vec2[1])
delS = sit1 - sit2
if delS > 0:
return 1
else:
if abs(delS) > math.pi:
return 1
return 0
X = [0.0] * 5
Y = [0.0] * 5
S = [0.0] * 5
sX = [0.0] * 7
sY = [0.0] * 7
sS = [0.0] * 5
for i in range(0, 5):
X[i], Y[i] = map(int, raw_input().split())
cntX = sum(X)/5.0
cntY = sum(Y)/5.0
for i in range(0, 5):
X[i] -= cntX
Y[i] -= cntY
S[i] = sita(X[i], Y[i])
sS = sorted(S)
for i in range(0, 5):
for j in range(0, 5):
if S[i] == sS[j]:
sX[j] = X[i]
sY[j] = Y[i]
sX[5] = sX[0]
sY[5] = sY[0]
sX[6] = sX[1]
sY[6] = sY[1]
point = 0
for i in range(0, 5):
point += ch(sX[i], sY[i], sX[i+2], sY[i+2], sX[i+1], sY[i+1])
if point == 5:
print "YES"
else:
print "NO"
HIROPON87069639