67. 搭電梯

0 Judge

Code: 0


電梯

有一棟大樓裡面有一部電梯,這棟大樓地面上有$10^9$層樓,也有$10^9$層地下室。

1樓的樓上是2樓,2樓的樓上是3樓,以此類推...

1樓的樓下是地下1樓,地下1樓的樓下是地下2樓,地下2樓的樓下是地下2樓,以此類推...

現在有一群人,人數少於$10^6$,都在1樓等電梯,每個人都有想去的樓層,而電梯一次可以載k個人,請問電梯最少需要多少移動量才能運送完所有人?

移動量跟電梯載的人數無關,假設電梯現在在1樓,同時載了想去4樓跟想去5樓的人,電梯一開始會從1樓上升到4樓,再到5樓,接著再回一樓(假設一樓還有人要搭),或者是從1樓直接到5樓,再從5樓到4樓,再從4樓回到1樓(假設一樓還有人要搭),這樣這次電梯的移動量就是$|5-1|+|1-5| = 8$。

輸入說明

  • 第一行有兩個整數n、k($1\leq k \leq n \leq 10^6)$,代表有n個人要搭電梯,電梯每次可載k個人
  • 接下來有n個以空白分隔的數字$a_i$,代表每個人分別要去幾樓,地面上的樓層以正整數表示,地下室則加上一個負號,例如1樓寫成1,地下一樓寫成-1

輸出說明

  • 輸出一個數字代表電梯的最小移動量

子任務

  • 子任務1: 所有的$a_i$都一樣
  • 子任務2: $a_i\geq1$
  • 子任務3: $n\leq10$
  • 子任務4: $k=1$
  • 子任務5: 定義$b_i$是想到$i$樓的人數,所有的$b_i$都是k的倍數
  • 子任務6: 無額外限制

範例

  • Input

    3 1
    2 3 4
  • Output

    9
  • Input

    9 3
    2 3 4 5 6 7 8 9 10
  • Output

    27

Judge Setting

run-time limit: 1000 ms
memory limit: 538443776 byte
測資數量: 30