結果
問題 | No.421 しろくろチョコレート |
ユーザー |
![]() |
提出日時 | 2025-03-21 19:05:58 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,845 bytes |
コンパイル時間 | 315 ms |
コンパイル使用メモリ | 82,184 KB |
実行使用メモリ | 81,104 KB |
最終ジャッジ日時 | 2025-03-21 19:06:09 |
合計ジャッジ時間 | 10,405 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 4 WA * 58 RE * 2 OLE * 1 |
ソースコード
N, M = map(int, input().split())S = [input() for _ in range(N)]NM = N * ME = [[] for _ in range(NM)]D = [0] * NMF = [0] * NMWB = [0, 0]ans = 0Q = []nv = [1] * NMfor i in range(N):for j in range(M):ij = i * M + jif S[i][j] == ".":nv[ij] = 0continueif i < N - 1 and S[i + 1][j] != ".":ij2 = (i + 1) * M + jD[ij] += 1D[ij2] += 1E[ij].append(ij2)E[ij2].append(ij)if j < M - 1 and S[i][j + 1] != ".":ij2 = i * M + j + 1D[ij] += 1D[ij2] += 1E[ij].append(ij2)E[ij2].append(ij)if D[ij] == 0:nv[ij] = 0WB[ij % 2] += 1elif D[ij] == 1:nv[ij] = 0Q.append(ij)ans = 0while Q:x = Q.pop()cnt = 0for y in E[x]:if nv[y]:D[y] -= 1if F[x] == 0:nv[y] = 0F[x] = 1F[y] = 1ans += 100Q.append(y)elif D[y] == 1:nv[y] = 0Q.append(y)else:if F[x] == 0:if F[y] == 0:F[x] = 1F[y] = 1ans += 100if F[x] == 0:WB[x % 2] += 1print(x, nv, D, F, ans, Q)def dfs(x):for y in E[x]:if nv[y]:nv[y] = 0WB2[y % 2] += 1dfs(y)for i in range(NM):if nv[i]:nv[i] = 0WB2 = [0, 0]WB2[i % 2] += 1dfs(i)a, b = WB2ans += 100 * min(a, b)if a > b:WB[0] += 1elif a < b:WB[1] += 1a, b = WBif a < b:a, b = b, aans += 10 * bans += a - bprint(ans)