結果
問題 | No.2564 衝突予測 |
ユーザー |
|
提出日時 | 2023-12-02 15:51:04 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 282 ms / 2,000 ms |
コード長 | 1,846 bytes |
コンパイル時間 | 280 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 78,464 KB |
最終ジャッジ日時 | 2024-09-26 19:23:52 |
合計ジャッジ時間 | 3,947 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 |
ソースコード
import sysinput = lambda: sys.stdin.readline()[:-1]sys.setrecursionlimit(1000000)t = int(input())for i in range(t):x,y,d = input().split()x,y = int(x), int(y)x2,y2,d2 = input().split()x2,y2 = int(x2), int(y2)if d in "RL" and d2 in "RL":# 横方向での衝突を考えるif y != y2:print("No")elif x < x2:# a -> <- b の場合のみ衝突if d == "R" and d2 == "L":print("Yes")else:print("No")else:# b -> <- a の場合のみ衝突if d == "L" and d2 == "R":print("Yes")else:print("No")continueif d in "UD" and d2 in "UD":# 縦方向での衝突を考えるif x != x2:print("No")elif y < y2:# ^ v の場合のみ衝突if d == "U" and d2 == "D":print("Yes")else:print("No")else:# v ^ の場合のみ衝突if d == "D" and d2 == "U":print("Yes")else:print("No")continueif d2 in "UD":# d1がUD、d2がRLになるように入れ替えるx, y, d, x2, y2, d2 = x2, y2, d2, x, y, d# 衝突予想地点sx, sy = x, y2# ここを通るかどうかを確認するif not ((d == "U" and y < sy) or (d == "D" and y > sy)):# aが通らないprint("No")continueif not ((d2 == "R" and x2 < sx) or (d2 == "L" and x2 > sx)):# bが通らないprint("No")continue# 到着予想時刻の計算yosou_a = abs(sy-y)yosou_b = abs(sx-x2)if yosou_a == yosou_b:print("Yes")else:print("No")