結果

問題 No.635 自然門松列
ユーザー T1610T1610
提出日時 2018-02-14 10:02:20
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 30 ms / 650 ms
コード長 982 bytes
コンパイル時間 293 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 11,008 KB
最終ジャッジ日時 2024-06-23 08:51:18
合計ジャッジ時間 1,454 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #

def func(x):
    if x[0] == x[1] or x[0] == x[2]:
        return False
    if x[1] > x[0] and x[1] > x[2] :
        return True
    if x[1] < x[0] and x[1] < x[2] :
        return True
    return False
def make(x, y, t) :
    z = [x[i] for i in range(3)]
    if t < 0.0 :
        return x
    for i in range(3) :
        z[i] += y[i] * t
    return z
N = int(input())
for case in range(N) :
    z = list(map(int, input().split()))
    x = [0 for i in range(3)]
    y = [0 for i in range(3)]
    for i in range(3) :
        x[i] = z[i]
    for i in range(3) :
        y[i] = z[i+3]
    f = func(x)
    # print('{} {}'.format(x,y))
    for i in range(3) :
        for j in range(i) :
            if y [i] != y[j] :
                t = (x[j] - x[i]) / (y[i] - y[j])
                if func(make(x, y, t + 0.0000001)) or func(make(x, y, t - 0.0000001)) :
                    f = True
                # print('{} {} {} {}'.format(i, j, t, make(x, y, t)))
    print("YES" if f else "NO")
0