TopCoder

User's AC Ratio

100.0% (3/3)

Submission's AC Ratio

29.4% (5/17)

Tags

Description

喵喵很喜歡玩 Minecraft。Minecraft 因為能創造屬於自己的世界,一直令他很著迷,所以喵喵很喜歡找他的朋友,汪汪跟他一起玩。但是汪汪有點怕水,他每次都會不小心在挖礦的時候挖到水然後被沖走。為了更了解 Minecraft 水流的流動,他今天想要透過程式來計算水流的流動。

今天 Minecraft 是 2D 版本,有一個地圖從 $(1, 1)$ 到 $(M, N)$
開始每次水流會在座標 $(\lfloor \frac{M + 1}{2} \rfloor, N)$ 的地方開始重力往下流動。為了簡化,如果水流撞到底部,他會往所有沒有方塊的那個方向流動至多 $K$ 格。若過程中水流底部沒有方塊,則水流會往下。若碰到方塊或移動 $K$ 格後會停下。
如果水流撞到底部且兩邊都有方塊,則該水流會停下。此外,地圖外的方格均視為方塊。

注意在這樣的條件下,兩道水流也有可能合併成一道水流。

Input Format

輸入第一行有一個數字 $M, N, K$,代表地圖的寬跟高,以及強度。

接下來有一個 $M \times N$ 的地圖,1 代表該位置有方塊,0 代表沒有方塊。
保證 $(\lfloor \frac{M + 1}{2} \rfloor, N)$ 初始沒有方塊。

$M \leq 1000, N \leq 10, K \leq 100$。

Output Format

請基於原本的地圖,輸出一個 $M \times N$ 的地圖,2 代表該位置有水經過,1 代表該位置有方塊,0 代表什麼都沒有。

Sample Input 1

5 5 2
00000
00010
10100
00000
01111

Sample Output 1

00200
02210
12100
22220
21111

Hints

Problem Source

Subtasks

No. Testdata Range Score
1 0~15 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 1
6 1000 65536 65536 1
7 1000 65536 65536 1
8 1000 65536 65536 1
9 1000 65536 65536 1
10 1000 65536 65536 1
11 1000 65536 65536 1
12 1000 65536 65536 1
13 1000 65536 65536 1
14 1000 65536 65536 1
15 1000 65536 65536 1