1G, 2s, vattenfall
Alexander 喜欢水。因此,他也就喜欢奔腾的流水。这也许能解释为什么他想要造一座属于自己的瀑布。想象一下,水流无尽地倾泻而下!
他找到了一面悬崖面,只要加上水,它就能成为理想的瀑布。该悬崖面可建模为一张 的网格,其中有 个单元格上有岩壁突出物。Alexander 计划从上方向下倒水,使水沿着 根竖直列流下。
水在网格中的扩散遵循如下规则:如果水正下方的单元格为空,则水向下扩散;如果正下方有岩壁,则水会向左、向右扩散;如果向左或向右的方向上有岩壁,则水在该方向不再扩散。这个规则同样适用于自上而下倒入的水。也就是说,如果把水倒入第 列且顶行第 列有岩壁,那么相当于也从上方向第 列和第 列倒水(前提是这些列仍在网格范围内)。
然而,Alexander 不想引发泛滥,因为那样最终所有的水都会静止不动。静止的水当然不如奔流的水来得令人兴奋。因此,他希望你编写一个程序,计算悬崖面底行中,有水的列数。


图 1:样例 1 和 2 的流动示意图。红色边框标记了悬崖面的末端。