移动距离
题目描述
X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3,
⋯
⋯
当排满一行时,从下一行相邻的楼往反方向排号。
比如:当小区排号宽度为 6 时,开始情形如下:
1 2 3 4 5 6
12 11 10 9 8 7
13 14 15
⋯
⋯
我们的问题是:已知了两个楼号 ,m,n,需要求出它们之间的最短移动距离(不能斜线方向移动)
输入要求
输入为 3 个整数 ,w,m,n,空格分开,都在 1 到 10000 范围内,w 为排号宽度,m,n 为待计算的楼号。
输出要求
要求输出一个整数,表示 m,n 两楼间最短移动距离。
思路
简单题按要求实现列表,然后找到开始和结束一减就来了,刚开始拿到还以为是一道bfs题把bfs写出来试验了半天都没通过发现不对劲,结果三行代码解决的我去写了十几行bfs真是个大怨种
参考代码
w,m,n = map(int,input().split())
mp =