結果

問題 No.179 塗り分け
コンテスト
ユーザー T
提出日時 2025-11-25 00:48:36
言語 Python3
(3.13.1 + numpy 2.2.1 + scipy 1.14.1)
結果
AC  
実行時間 166 ms / 3,000 ms
コード長 866 bytes
コンパイル時間 328 ms
コンパイル使用メモリ 12,160 KB
実行使用メモリ 10,624 KB
最終ジャッジ日時 2025-11-25 00:48:40
合計ジャッジ時間 4,161 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 6
other AC * 40
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

H,W = map(int,input().split())
S = [input().strip() for i in range(H)]
black = []
for i in range(H):
	for j in range(W):
		if (S[i][j] == "#"):
			black.append((i,j))
		else:
			pass
if len(black) < 2:
    print("NO")
    exit()

flag = "NO"    
#基準点
(x1, y1) = black[0]
for (x , y) in black:
	(dx, dy) = (x - x1, y - y1)
	# 使ったマスの確認用
	used = [[False]*W for t in range(H)]
	
	check = True
	for (i,j) in black:
		if (used[i][j] == True):
			continue
		else:
			used[i][j] = True
		
		(xi, yj) = (i + dx, j + dy)
		# 移動先が使えるか確認
		if ((0 <= xi < H) and (0 <= yj < W )):
			if (not (used[xi][yj] == True)):
				if (S[xi][yj] == "#"):
					used[xi][yj] = True
				else:
					check = False
					break
			else:
				check = False
				break
		else:
			check = False
			break
	if (check == True):
		flag = "YES"
		break

print(flag)
0