結果
問題 | No.2564 衝突予測 |
ユーザー |
|
提出日時 | 2023-12-02 16:47:26 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 4,396 bytes |
コンパイル時間 | 269 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 92,032 KB |
最終ジャッジ日時 | 2024-09-26 20:43:21 |
合計ジャッジ時間 | 7,813 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 4 WA * 5 |
ソースコード
from __future__ import annotationsimport arrayimport bisectimport copyimport fractionsimport heapqimport itertoolsimport mathimport randomimport reimport stringimport sysimport timefrom collections import defaultdict, dequefrom functools import lru_cachesys.setrecursionlimit(10**6)def read_int_list():return list(map(int, input().split()))def read_int():return int(input())def read_str_list():return list(input().split())def read_str():return input()def is_prime(n: int) -> bool:if n < 2:return Falsei = 2ok = Truewhile i * i <= n:if n % i == 0:ok = Falsei += 1return okdef eratosthenes(n: int) -> list[bool]:is_prime_list = ([False, True] * (n // 2 + 1))[0 : n + 1]is_prime_list[1] = Falseis_prime_list[2] = Truefor i in range(3, n + 1, 2):if not (is_prime_list[i]):continueif i * i > n:breakfor k in range(i * i, n + 1, i):is_prime_list[k] = Falsereturn is_prime_listdef legendre(n: int, p: int) -> int:cnt = 0pp = pwhile pp <= n:cnt += n // pppp *= preturn cntdef prime_factorize(n: int) -> defaultdict[int, int]:nn = ni = 2d: defaultdict[int, int] = defaultdict(int)while i * i <= n:while nn % i == 0:d[i] += 1nn //= ii += 1if nn != 1:d[nn] += 1return ddef make_divisors(n: int) -> list[int]:i = 1ret = []while i * i <= n:if n % i == 0:ret.append(i)if i != n // i:ret.append(n // i)i += 1ret.sort()return retdef gcd(a: int, b: int) -> int:if a == 0:return belse:return gcd(b % a, a)def lcm(a: int, b: int) -> int:return a * b // gcd(a, b)def ext_gcd(a: int, b: int) -> tuple[int, int, int]:if a == 0:return (0, 1, b)x, y, g = ext_gcd(b % a, a)return (y - b // a * x, x, g)class UnionFind:def __init__(self, n):self.parent = [-1] * nself.size = ndef find(self, x):if self.parent[x] < 0:return xelse:self.parent[x] = self.find(self.parent[x])return self.parent[x]def merge(self, x, y):x = self.find(x)y = self.find(y)if x != y:if self.parent[x] > self.parent[y]:x, y = y, xself.parent[x] += self.parent[y]self.parent[y] = xself.size -= 1return Trueelse:return Falsedef same(self, x, y):return self.find(x) == self.find(y)def size(self, x):return -self.parent[self.find(x)]def solve():x1,y1,d1=read_str_list()x1=int(x1)y1=int(y1)x2,y2,d2=read_str_list()x2=int(x2)y2=int(y2)if x1==x2:if y1<y2 and d1=="U" and d2=="D":print("Yes")returnif y1>y2 and d1=="D" and d2=="U":print("Yes")returnif y1==y2:if x1<x2 and d1=="R" and d2=="L":print("Yes")returnif x1>x2 and d1=="L" and d2=="R":print("Yes")returnif d1=="U" and y2>y1:diff=y2-y1if d2=="L" and [x1,y1+diff]==[x2-diff,y2]:print("Yes")returnif d2=="R" and [x1,y1+diff]==[x2+diff,y2]:print("Yes")returnif d1=="D" and y2<y1:diff=y1-y2if d2=="L" and [x1,y1-diff]==[x2-diff,y2]:print("Yes")returnif d2=="R" and [x1,y1-diff]==[x2+diff,y2]:print("Yes")returnif d1=="R" and x2>x1:diff=x2-x1if d2=="U" and [x1+diff,y1]==[x2+diff,y2]:print("Yes")returnif d2=="D" and [x1+diff,y1]==[x2-diff,y2]:print("Yes")returnif d1=="L" and x2<x1:diff=x1-x2if d2=="U" and [x1-diff,y1]==[x2+diff,y2]:print("Yes")returnif d2=="D" and [x1-diff,y1]==[x2-diff,y2]:print("Yes")returnprint("No")def main():t = read_int()for _ in range(t):solve()main()