結果
問題 |
No.86 TVザッピング(2)
|
ユーザー |
![]() |
提出日時 | 2025-06-12 18:00:51 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,187 bytes |
コンパイル時間 | 158 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 73,596 KB |
最終ジャッジ日時 | 2025-06-20 14:02:48 |
合計ジャッジ時間 | 2,434 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 23 WA * 7 |
ソースコード
import sys from collections import deque def main(): N, M = map(int, sys.stdin.readline().split()) grid = [] dots = [] for i in range(N): line = sys.stdin.readline().strip() grid.append(line) for j in range(M): if line[j] == '.': dots.append((i, j)) K = len(dots) if K % 2 != 0: print("NO") return if K == 0: print("NO") return # Though problem states there are at least two # Check connectivity using BFS visited = set() start = dots[0] q = deque([start]) visited.add(start) dirs = [(-1, 0), (1, 0), (0, -1), (0, 1)] while q: i, j = q.popleft() for di, dj in dirs: ni, nj = i + di, j + dj if 0 <= ni < N and 0 <= nj < M: if grid[ni][nj] == '.' and (ni, nj) not in visited: visited.add((ni, nj)) q.append((ni, nj)) if len(visited) != K: print("NO") return # Check if it's a single row or column if N == 1 or M == 1: print("NO") return print("YES") if __name__ == "__main__": main()