[トレーニング]翌日ブルーブリッジカップ1261

1261

[2015ブルーブリッジカップ予備]移動距離

惑星X住宅はすべて同じであり、マトリクス状に配置されました。
ライン、隣接する建物からアレンジ反対方向に次の行を満たしたとき、その建物は... 1,2,3番。
たとえば、次のセル6を配置幅、開始状況のときのように:
1. 4 5 6 2 3
。12は9 10 8 7 11
13 14 15である.....
私達の問題の2つの数字が与えられるが、mおよびn F 、最短距離その間の動きを得るために必要な
(動きがない対角線方向)、
入力された
テストデータのセットの入力複数
入力が3 WMNの整数であり、別々のスペース、1〜10000の範囲内にある
Wは、行数mの幅であり、 N Fを算出します。
出力
要求出力の整数であり、2つの移動床MNとの間の最短距離を表しています。
サンプル入力コピー
6 2 8
4 7 20は、
コピー出力例
。4
。5

ご注意ください

私たちは、ゼロベース、簡単な順序付けを使用する必要があります

アルゴリズム

  1. 建物の位置を計算する機能を持ちます
  2. 2つの移動床MNとの間の最短距離の絶対値の差があるように、2つの位置が、yとxは

問題の解決策

def local(w, data):
    data = data-1#方便排序计算
    odd = (data // w)% 2
    if odd == 0:
        return (data // w, data % w)
    else:
        return (data // w, w-1-(data % w))
 
while True:      
    w, m, n = map(int, input().split())
    M = local(w,m)
    N = local(w,n)
    # print(M,N)
    res = abs(N[0]-M[0])+abs(N[1]-M[1])  
    print(res)

おすすめ

転載: www.cnblogs.com/yanshanbei/p/12210771.html