結果
| 問題 | No.13 囲みたい! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-09-21 14:51:14 |
| 言語 | PyPy2 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 113 ms / 5,000 ms |
| コード長 | 895 bytes |
| 記録 | |
| コンパイル時間 | 126 ms |
| コンパイル使用メモリ | 77,764 KB |
| 最終ジャッジ日時 | 2025-12-03 21:34:15 |
|
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 16 |
ソースコード
W, H = map(int, raw_input().split())
board = [map(int, raw_input().split()) for _ in xrange(H)]
visited = set()
dr = [0, 0, 1, -1]
dc = [1, -1, 0, 0]
def dfs(start):
stack = [start]
while len(stack) > 0:
row, col = stack.pop()
if (row, col) in visited:
return True
visited.add((row, col))
for i in xrange(4):
nrow = row+dr[i]
ncol = col+dc[i]
if nrow < 0 or nrow >= H or ncol < 0 or ncol >= W:
continue
if (nrow, ncol) in visited:
continue
if board[nrow][ncol] != board[row][col]:
continue
stack.append((nrow, ncol))
return False
for i in xrange(H):
for j in xrange(W):
if (i, j) in visited:
continue
if dfs((i, j)):
print 'possible'
exit()
print 'impossible'