Thang Máy

Đề bài

Mô tả

Trong một toà nhà có n người đang đứng ở tầng 1 và chờ thang máy. Người thứ i muốn lên tầng fi. Toà nhà chỉ có một thang máy với sức chứa tối đa k người. Ban đầu thang máy ở tầng 1.

Thang máy cần |ab| giây để di chuyển từ tầng a sang tầng b. Thời gian lên xuống thang không được tính.

Hãy tính thời gian ngắn nhất để thang máy đưa tất cả mọi người về đúng tầng của mình và sau đó quay trở lại tầng 1.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên nk.
  • Dòng thứ hai chứa n số nguyên f1,f2,,fn — tầng đích của mỗi người.

Dữ liệu ra

In ra một số nguyên duy nhất — thời gian ngắn nhất cần thiết.

Ràng buộc

  • 1n,k2000
  • 2fi2000

Ví dụ

Input Output Giải thích
3 2
2 3 4
8 Thang máy đón hai người đầu lên tầng 2 (1 giây), trả người tầng 2, đi tiếp lên tầng 3 (1 giây) trả người, rồi quay về tầng 1 (2 giây). Sau đó đón người còn lại lên tầng 4 (3 giây) và quay về (3 giây) — nhưng có thể tối ưu thành tổng 8 giây.
4 2
50 100 50 100
296 Đón hai người tầng 100 trước, quay lại đón hai người tầng 50. Tổng thời gian 2·99+2·49=296.
10 3
2 2 2 2 2 2 2 2 2 2
8 Tất cả đều lên tầng 2, cần 4 lượt, mỗi lượt mất 2 giây.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0