牛客14605 画三角
鏈接:https://ac.nowcoder.com/acm/problem/14605
來(lái)源:牛客網(wǎng)
時(shí)間限制:C/C++ 1秒,其他語(yǔ)言2秒
空間限制:C/C++ 131072K,其他語(yǔ)言262144K
64bit IO Format: %lld
題目描述
小學(xué)時(shí),JYM和XJ剛剛學(xué)習(xí)了三角形,XJ提議把眼睛閉起來(lái)在紙上畫(huà)三角形,鞏固知識(shí)。為了讓三角形更好地表示,JYM去拿了一張坐標(biāo)紙(不要問(wèn)為什么小學(xué)的他就有坐標(biāo)紙),坐標(biāo)紙的范圍是[-1000,1000]。于是,XJ就在坐標(biāo)紙上畫(huà)了N個(gè)三角形(當(dāng)然他也可能畫(huà)了一條直線(xiàn)出來(lái))。因?yàn)樾W(xué)的他們還沒(méi)有學(xué)習(xí)小數(shù),所以所有的三角形頂點(diǎn)的坐標(biāo),都被JYM近似成了整數(shù)點(diǎn)。現(xiàn)在,JYM和XJ想知道這些三角形有沒(méi)有將坐標(biāo)原點(diǎn)包含在里面,請(qǐng)你編寫(xiě)程序解決這個(gè)問(wèn)題。
輸入描述:
一個(gè)整數(shù)N(N<1000),表示有N個(gè)三角形。接下來(lái)每一行有兩個(gè)整數(shù)x(-1000<=x<=1000)和y(-1000<=y<=1000),表示一個(gè)點(diǎn)的坐標(biāo);每三行的三個(gè)點(diǎn)構(gòu)成一個(gè)三角形。
輸出描述:
為每個(gè)三角形輸出一個(gè)YES或者NO。YES表示三角形包含了坐標(biāo)原點(diǎn),NO表示三角沒(méi)有包含坐標(biāo)原點(diǎn)或者坐標(biāo)原點(diǎn)在三角形的邊界上或者當(dāng)前的三個(gè)點(diǎn)不能構(gòu)成三角形。
N = int(input())def Area(x1,y1,x2,y2,x3,y3):return abs(x1 * y2 - x2 * y1 + x2 * y3 - x3 * y2 + x3 * y1 - x1 * y3) / 2for _ in range(N):a, b, c = [list(map(int, input().split())) for _ in range(3)]x1, y1, x2, y2, x3, y3 = a[0], a[1], b[0], b[1], c[0], c[1]# 面積area = Area(x1, y1, x2, y2, x3, y3)# 分別和原點(diǎn)構(gòu)成的三角形面積area1 = Area(x1, y1, x2, y2, 0, 0)area2 = Area(x1, y1, x3, y3, 0, 0)area3 = Area(x2, y2, x3, y3, 0, 0)if area != (area1 + area2 + area3):# 不能構(gòu)成三角形或沒(méi)有包含坐標(biāo)原點(diǎn)print('NO')elif area1 == 0 or area2 == 0 or area3 == 0:# 原點(diǎn)在邊界上print('NO')else:print('YES')總結(jié)
以上是生活随笔為你收集整理的牛客14605 画三角的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 牛客16429 组合数问题(二维前缀和
- 下一篇: MATLAB图像处理基础