結果

問題 No.13 囲みたい!
ユーザー はむ吉🐹
提出日時 2016-05-26 22:43:08
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
RE  
実行時間 -
コード長 1,712 bytes
コンパイル時間 224 ms
コンパイル使用メモリ 12,800 KB
実行使用メモリ 14,976 KB
最終ジャッジ日時 2024-10-07 16:19:26
合計ジャッジ時間 1,747 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 15 RE * 1
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#!/usr/bin/env python3
import array
import itertools
import sys
DELTAS = [(1, 0), (-1, 0), (0, 1), (0, -1)]
UNDEF = (-1, -1)
class Solver(object):
def __init__(self, width, height, field):
self.width = width
self.height = height
self.field = field
self.visited = [array.array("B", (False for _ in range(width)))
for _ in range(height)]
self.pred = [[UNDEF for _ in range(width)] for _ in range(height)]
self.answer = False
def in_field(self, r, c):
return 0 <= r < self.height and 0 <= c < self.width
def dfs(self, r0, c0, num):
if self.field[r0][c0] != num:
return
elif self.visited[r0][c0]:
self.answer = True
return
self.visited[r0][c0] = True
for dr, dc in DELTAS:
(r, c) = (r0 + dr, c0 + dc)
if not self.in_field(r, c):
continue
elif self.pred[r0][c0] == (r, c):
continue
self.pred[r][c] = (r0, c0)
self.dfs(r, c, num)
def judge(self):
rcs = itertools.product(range(self.height), range(self.width))
for r, c in rcs:
if not self.visited[r][c]:
self.dfs(r, c, self.field[r][c])
if self.answer:
return True
else:
return False
def main():
sys.setrecursionlimit(10000)
width, height = map(int, input().split())
field = [array.array("I", map(int, input().split()))
for _ in range(height)]
solver = Solver(width, height, field)
print("possible" if solver.judge() else "impossible")
if __name__ == '__main__':
main()
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0