Convoy
题号:NC223520
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

You and your friends have gathered at your house to prepare for the Big Game, which you all plan to attend in the afternoon at the football stadium across town. The problem: you only have k cars between you, with each car seating five people (including the driver), so you might have to take multiple trips to get all n people to the stadium. In addition, some of your friends know the city better than others, and so take different amounts of time to drive to the stadium from your house. You’d like to procrastinate as long as possible before hitting the road: can you concoct a transportation plan that gets all people to the stadium in the shortest amount of time possible? 
More specifically, each person i currently at your house can drive to the stadium in t_i minutes. All k cars are currently parked at your house. Any person can drive any car (so the cars are interchangeable). After a car arrives at the stadium, any person currently at the stadium can immediately start driving back to your house (and it takes person i the same amount of time  to drive back as to drive to the stadium), or alternatively, cars can be temporarily or permanently parked at the stadium. Drivers driving to the stadium can take up to four passengers with them, but drivers driving back can NOT take any passenger. You care only about getting all n people from your house to the stadium—you do NOT need to park all k cars at the stadium, if doing so would require more time than an alternative plan that leaves some cars at your house.

输入描述:

The first line of input contains two space-separated integers n and k (1 ≤ n, k ≤ 20 000), the number of people atyour house and the number of available cars. Then follow n lines containing a single integer each; the  such integeris the number of seconds t_i (1 ≤t_i≤ 1 000 000) that it takes person i to drive from your house to the stadium, orvice-versa

输出描述:

Print the minimum number of seconds it takes to move all n people from your house to the stadium, if all people coordinate and drive optimally.
示例1

输入

复制
11 2
12000
9000
4500
10000
12000
11000
12000
18000
10000
9000
12000

输出

复制
13500
示例2

输入

复制
6 2
1000
2000
3000
4000
5000
6000

输出

复制
2000