結果
| 問題 | No.1588 Connection |
| コンテスト | |
| ユーザー |
norioc
|
| 提出日時 | 2021-07-09 01:47:19 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 159 ms / 2,000 ms |
| コード長 | 794 bytes |
| コンパイル時間 | 354 ms |
| コンパイル使用メモリ | 12,544 KB |
| 実行使用メモリ | 27,992 KB |
| 平均クエリ数 | 552.31 |
| 最終ジャッジ日時 | 2024-07-17 12:51:51 |
| 合計ジャッジ時間 | 4,442 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 31 |
ソースコード
import collections
N, M = map(int, input().split())
def query(r, c) -> bool:
print(r, c)
res = input()
if res == '-1': exit()
return res == 'Black'
def calc():
q = collections.deque()
q.append((1, 1))
used = collections.defaultdict(bool)
m = 0
while len(q) > 0:
r, c = q.popleft()
if used[r, c]: continue
used[r, c] = True
if r == N and c == N: return True
if m == 3000: return False
black = query(r, c)
m += 1
if not black: continue
for dr, dc in [(-1, 0), (1, 0), (0, -1), (0, 1)]:
if not (1 <= r + dr <= N): continue
if not (1 <= c + dc <= N): continue
q.append((r + dr, c + dc))
ans = calc()
if ans:
print('Yes')
else:
print('No')
norioc