結果
| 問題 |
No.459 C-VS for yukicoder
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-12-14 23:18:07 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 182 ms / 2,000 ms |
| コード長 | 880 bytes |
| コンパイル時間 | 330 ms |
| コンパイル使用メモリ | 82,384 KB |
| 実行使用メモリ | 84,060 KB |
| 最終ジャッジ日時 | 2024-12-14 13:37:27 |
| 合計ジャッジ時間 | 8,747 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 58 |
ソースコード
h, w, n = map(int, input().split())
s = [input() for i in range(h)]
cnt = [0] * w
for i in range(h):
for j in range(w):
cnt[j] += s[i][j] == '#'
ret = [[0] * 3 for i in range(n)]
empty = [True] * n
cell = [[] for i in range(w)]
for i in range(n):
c = int(input())
cell[c].append(i)
for i in range(w):
cells = []
if i >= 2: cells.extend([(x, 2) for x in cell[i - 2]])
if i >= 1: cells.extend([(x, 1) for x in cell[i - 1]])
cells.extend([(x, 0) for x in cell[i]])
for x, y in cells:
if not cnt[i]: break
if empty[x]:
ret[x][y] += 1
cnt[i] -= 1
empty[x] = False
for x, y in cells:
r = min(cnt[i], 3 - ret[x][y])
ret[x][y] += r
cnt[i] -= r
for e in ret:
r = [['.'] * 3 for i in range(3)]
for i in range(3):
for j in range(e[i]):
r[j][i] = '#'
for i in range(3):
r[i] = ''.join(r[i])
print(*r, sep='\n')