두 개의 정렬된 파일을 하나의 정렬된 파일로 만드는 기계가 있고,
이 기계의 이용 비용은 두 파일의 크기의 합이다.
크기는 각각 s1, s2, ..., sn인 n 개의 정렬된 파일이 주어질 때, 이들 파일을 위의 기계를 이용하여 최소비용으로 정렬하고자 한다.
예를 들어, 크기가 각각 15, 15, 20, 10인 4개의 파일이 주어져 있다고 하자. 첫 번째 파일과 4번째 파일을 정렬을 한다.
결과로 생기는 정렬된 파일을 파일 5라 하자. 두 번째 파일과 세 번째 파일을 정렬한다.
결과로 생기는 정렬된 파일을 파일 6이라 하자. 마지막으로 파일 5와 파일 6을 정렬하면 하나의 정렬된 파일이 만들어지고
전체 비용은 (15+10) + (15+20) + (25+35) = 120으로 이것이 최소 비용임을 알 수 있다.
제약 조건: 최소 힙을 사용하여야 한다.
뭐라는건지..
15, 15, 20 10을 민힙으로 만들고 그냥 다 더하라는건가? ㅋㅋ
뭔말이지.
이거 icpc할때 본거같은데
뭘궁금해하는지궁금하넹
올해 acm icpc대전은 저거랑 파일합치기는 비슷한데 저문제는아니었어양.
저 15, 15, 20 10 은 어떤식으로 합쳐도 최소비용임
(15+15)+(20+10)+(30+30)=120
35+25+60=120
최소힙으로 뭘하라는건지
정렬을 하면서 합친다고 되어있는데 15, 15, 20 10을 최소힙으로 만드는 과정에서 그냥 맨 뒤에서부터(자식노드) 부모노드 찾으면서 스왑하면서 스왑한 대상을 합치는건지? 아님 뭔지