호송
시간 제한1초메모리 제한512 MB
각자 운전 시간이 주어진 n명을 좌석 5석짜리 자동차 k대로 집에서 경기장까지 옮기는 데 걸리는 최소 시간을 구합니다.
문제
당신과 친구들은 오후에 시내 건너편 축구장에서 열리는 큰 경기에 함께 가려고 집에 모여 있다. 자동차는 모두 합쳐 k대이고, 한 대에는 운전자를 포함해 다섯 명이 탈 수 있다. 따라서 n명 모두를 경기장에 데려가려면 여러 번 나눠 가야 할 수도 있다. 친구들 중 일부는 도시를 더 잘 알아서 경기장까지 가는 시간이 서로 다르다.
집에 있는 사람 i는 경기장까지 초 만에 운전해 갈 수 있다. 경기장에서 집으로 돌아올 때도 똑같이 초가 걸린다. 처음에는 k대의 자동차가 모두 집에 주차되어 있다. 어떤 사람이든 어떤 자동차든 운전할 수 있어서, 자동차는 서로 바꿔 쓸 수 있다.
자동차가 경기장에 도착하면, 그곳에 있는 사람은 누구든 바로 그 차를 몰고 집으로 돌아갈 수 있다. 또는 자동차를 경기장에 잠시 또는 영구히 세워 둘 수도 있다. 경기장으로 가는 운전자는 승객을 최대 4명까지 태울 수 있다. 하지만 집으로 돌아오는 운전자는 승객을 태울 수 없다.
집에 있는 n명 모두를 경기장까지 옮기는 데 필요한 최소 시간(초)을 구하라. 모든 차를 경기장으로 가져가는 것보다 일부 차를 집에 남겨 두는 계획이 더 빠르다면, 차를 집에 남겨 두어도 된다.
입력
첫 번째 줄에 집에 있는 사람 수 n과 자동차 수 k가 공백으로 구분된 두 정수로 주어진다 (). 다음 n개의 줄에는 각각 정수 () 하나가 주어진다. 는 사람 i가 집과 경기장 사이를 운전하는 데 걸리는 초이다.
출력
n명 모두를 집에서 경기장까지 옮기는 데 필요한 최소 시간(초)을 출력한다.