結果
問題 | No.1588 Connection |
ユーザー |
|
提出日時 | 2023-01-22 17:30:38 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 276 ms / 2,000 ms |
コード長 | 1,075 bytes |
コンパイル時間 | 430 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 98,272 KB |
平均クエリ数 | 551.38 |
最終ジャッジ日時 | 2024-06-24 21:42:13 |
合計ジャッジ時間 | 6,080 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 31 |
ソースコード
from collections import deque import sys n, m = map(int, input().split()) dist = [[None for _ in range(n)] for _ in range(n)] dist[0][0] = 0 used = [[None for _ in range(n)] for _ in range(n)] used[0][0] = False used[-1][-1] = False dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] gx, gy = n - 1, n - 1 dq = deque() dq.append((0, 0)) rest = 3000 while len(dq) > 0: cx, cy = dq.popleft() for i in range(4): nx = cx + dx[i] if nx < 0 or nx >= n: continue ny = cy + dy[i] if ny < 0 or ny >= n: continue if not dist[nx][ny] is None: continue if used[nx][ny] is None: if rest <= 0: break rest -= 1 print(*[nx + 1, ny + 1], sep=" ") sys.stdout.flush() t = input() if t == "Black": used[nx][ny] = False elif t == "White": used[nx][ny] = True if not used[nx][ny]: dist[nx][ny] = dist[cx][cy] + 1 dq.append((nx, ny)) if not dist[gx][gy] is None: print("Yes") sys.stdout.flush() exit() elif rest <= 0: break print("No") sys.stdout.flush()