結果
| 問題 |
No.2602 Real Collider
|
| コンテスト | |
| ユーザー |
amentorimaru
|
| 提出日時 | 2023-10-25 22:41:54 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 131 ms / 2,000 ms |
| コード長 | 1,474 bytes |
| コンパイル時間 | 366 ms |
| コンパイル使用メモリ | 82,520 KB |
| 実行使用メモリ | 77,184 KB |
| 最終ジャッジ日時 | 2024-09-26 03:22:46 |
| 合計ジャッジ時間 | 11,749 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 78 |
ソースコード
import sys
input = sys.stdin.readline
def read_values(): return tuple(map(int, input().split()))
def read_list(): return list(read_values())
def area(x1,y1,x2,y2,x3,y3):
return x1*y2+x2*y3+x3*y1-y2*x3-y3*x1-y1*x2
q=int(input())
xa,ya,xb,yb,xc,yc=read_values()
sqa = (xb - xc) * (xb - xc) + (yb - yc) * (yb - yc)
sqb = (xc - xa) * (xc - xa) + (yc - ya) * (yc - ya)
sqc = (xa - xb) * (xa - xb) + (ya - yb) * (ya - yb)
if sqb>=sqa and sqb>=sqc:
xa,xb,ya,yb=xb,xa,yb,ya
elif sqc>=sqa and sqc>=sqb:
xa,xc,ya,yc=xc,xa,yc,ya
sqa = (xb - xc) * (xb - xc) + (yb - yc) * (yb - yc)
sqb = (xc - xa) * (xc - xa) + (yc - ya) * (yc - ya)
sqc = (xa - xb) * (xa - xb) + (ya - yb) * (ya - yb)
if sqa>=sqb+sqc:
for _ in range(q):
xi,yi=read_values()
bd=(xb - xi) * (xb - xi) + (yb - yi) * (yb - yi);
cd=(xc - xi) * (xc - xi) + (yc - yi) * (yc - yi);
if bd+cd<=sqa:
print('Yes')
else:
print('No')
else:
a1=area(xb,yb,xc,yc,xa,ya)
num=(xb - xa) * (xc - xa) + (yb - ya) * (yc - ya)
num*=num
dem=sqb*sqc
for _ in range(q):
xi,yi=read_values()
bd=(xb - xi) * (xb - xi) + (yb - yi) * (yb - yi);
cd=(xc - xi) * (xc - xi) + (yc - yi) * (yc - yi);
inner=(xb - xi) * (xc - xi) + (yb - yi) * (yc - yi)
numi=inner*inner
demi=bd*cd
ai=area(xb,yb,xc,yc,xi,yi)
if a1*ai>=0:
if inner < 0 or numi * dem <= num * demi:
print('Yes')
else:
print('No')
else:
if inner <= 0 and numi * dem >= num * demi:
print('Yes')
else :
print('No')
amentorimaru