#4. 游泳练习
游泳练习
题目描述
小蓝正在一个游泳池里练习游泳,这个游泳池的长度为 ,且共有 个泳道。他想要从泳池的最上方游到泳池的最下方。
但是,有一些调皮的孩子在泳池中玩耍,堵塞了泳道,导致中途需要停下更换泳道,才能继续通行。
小蓝在游泳过程中可以停下更换泳道(左右移动),且每移动一格算作更换一次泳道。也可以一直朝着终点游(向下移动),期间不增加泳道更换次数。无论什么时候,小白都不会往回游(向上移动)。
小蓝并不想频繁地在练习途中更换泳道,这样会影响他的练习效果的。他想请你帮忙,找出更换泳道次数最少的游泳方案,并告诉他最少更换几次泳道能到达终点。如果无论怎样都无法到达终点,输出 No。
输入格式
第一行包含两个整数 ,分别表示泳池长度与泳道数量。
接下来共 行 列,每行 个 0 或 1,0 表示此处为空,1 表示此处有一群调皮的孩子堵住了泳道。数据保证最上面一行至少有一个点为 0。小蓝将从泳池的第 1 行出发。
输出格式
一行一个整数 ,表示小蓝最少的更换泳道次数。
4 4
1 0 0 1
0 1 0 1
0 0 0 0
0 0 1 0
1
4 3
1 0 1
0 1 0
0 0 0
1 0 0
No
样例 1 说明
从点(1,3)出发,一直游到(3,3),更换泳道到(3,2),然后一直往前游,到达终点,共更换1次泳道。
样例 2 说明
点(1,1)、(2,2)、(1,3)都被堵住,无法到达终点。
数据范围