結果
| 問題 | No.2564 衝突予測 | 
| コンテスト | |
| ユーザー |  Yuto_kyopro0731 | 
| 提出日時 | 2023-12-02 16:42:31 | 
| 言語 | PyPy3 (7.3.15) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 683 ms / 2,000 ms | 
| コード長 | 1,732 bytes | 
| コンパイル時間 | 241 ms | 
| コンパイル使用メモリ | 82,048 KB | 
| 実行使用メモリ | 81,184 KB | 
| 最終ジャッジ日時 | 2024-09-26 20:37:54 | 
| 合計ジャッジ時間 | 7,346 ms | 
| ジャッジサーバーID (参考情報) | judge2 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 9 | 
ソースコード
#R=0,U=1,L=2,D=3,
def change(case):
    res = [0,0,0]
    res[0] = int(case[0])
    res[1] = int(case[1])
    if case[2]=='R':res[2] = 0
    elif case[2]=='U':res[2] = 1
    elif case[2]=='L':res[2] = 2
    elif case[2]=='D':res[2] = 3
    return res
def check(case1, case2):
    x1,y1,d1 = case1
    x2,y2,d2 = case2
    #一次元で動く
    if d1!=d2 and (d1+d2)%2==0:
        #RL
        if d1*d2==0 and y1==y2:
            if x2>x1 and d1 == 0:return True
            elif x2<x1 and d1==2:return True
            else:return False
        #UD
        elif d1*d2>0 and x1==x2:
            if y2>y1 and d1==1:return True
            elif y2<y1 and d1==3:return True
            else:return False
        else:return False
    #同じ方向
    elif d1==d2:return False
    
    #1が左右に動く
    if d1%2==0:
        dx21 = x2- x1
        #離れていく場合
        if dx21 >0 and d1==2:return False
        elif dx21 < 0 and d1==0:return False
        dy12 = y1-y2
        if dy12 > 0 and d2==3:return False
        elif dy12 < 0 and d2==1:return False
        
        if abs(dy12) == abs(dx21):return True
    #1が上下に動く
    else:
        #上下に動く
        dy21 = y2-y1
        #離れる場合
        if dy21 > 0 and d1==3:return False
        elif dy21 < 0 and d1 == 1:return False 
        dx12 = x1- x2
        #離れる場合
        if dx12 >0 and d2==2:return False
        elif dx12 < 0 and d2==0:return False
        
        if abs(dx12) == abs(dy21):return True
    return False
        
T = int(input())
for i in range(T):
    case1 = change(list(input().split()))
    case2 = change(list(input().split()))
    
    ans = check(case1, case2)
    print('Yes' if ans else 'No')
    
            
            
            
        