結果
| 問題 | No.3558 Dominoes, Black and White |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-05-29 20:31:57 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 164 ms / 2,000 ms |
| コード長 | 730 bytes |
| 記録 | |
| コンパイル時間 | 1,191 ms |
| コンパイル使用メモリ | 85,120 KB |
| 実行使用メモリ | 148,304 KB |
| 最終ジャッジ日時 | 2026-05-29 20:32:10 |
| 合計ジャッジ時間 | 12,611 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_1 |
| 純コード判定待ち |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 部分点 | 10 % | AC * 30 |
| 満点 | 90 % | AC * 89 |
| 合計 | 100 点 |
ソースコード
from heapq import *
N = int(int(input()))
S = [input() for _ in range(N)]
pos = [[] for _ in range(N)]
nxt = [2*N-1] * N
for i in range(N):
for j in range(2*N):
if S[i][j] == "#":
pos[i].append(j)
lack = []
rem = []
nxt = [2*N-1] * N
ans = 0
for i in range(N):
num = len(pos[i])
for j in range(num-1,-1,-1):
if nxt[i] <= N-1:
rem.append((i,pos[i][j]))
else:
ans += abs(nxt[i] - pos[i][j])
nxt[i] -= 1
for j in range(nxt[i],N-1,-1):
lack.append((i,j))
num = len(rem)
for i in range(num):
i0, j0 = rem[i]
i1, j1 = lack[i]
ans += abs(i1-i0) + abs(j1-j0)
print(ans)