結果
| 問題 | 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 sys
input = 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")
        continue
    if 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")
        continue
    if 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")
        continue
    if 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")
            
            
            
        