배치 스케줄링
시간 제한1초메모리 제한128 MB
순서가 정해진 작업을 연속한 묶음으로 나누고 각 묶음마다 준비 시간을 지불할 때, 가중 완료 시간 합의 최솟값을 구한다.
문제
한 대의 기계에서 번부터 번까지 번호가 매겨진 개의 작업을 순서대로 처리한다. 작업 순서 을 하나 이상의 배치(batch) 로 나눈다. 각 배치는 순서상 연속한 작업들의 묶음이다.
처리는 시간 에 시작한다. 배치는 첫 번째 배치부터 차례로 하나씩 처리하며, 더 작은 번호의 작업을 포함한 배치를 먼저 처리한다. 각 배치를 시작하기 전에는 기계를 준비하는 데 준비 시간 가 필요하다.
어떤 배치가 작업 로 이루어져 있고 시간 에 시작한다면, 이 배치에 속한 모든 작업의 출력(완료) 시각은 이다. 기계는 한 배치의 모든 결과를 이 시각에 동시에 출력하며, 바로 이어서 다음 배치가 시작된다.
각 작업 에는 처리 시간 와 비용 계수 가 주어진다. 작업 의 출력 시각을 라 하면 그 작업의 비용은 이다. 한 분할의 전체 비용은 모든 작업 비용의 합이다.
준비 시간과 각 작업의 처리 시간 및 비용 계수가 주어질 때, 가능한 전체 비용의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 작업의 수 이 주어진다 ().
둘째 줄에 준비 시간 가 정수로 주어진다 ().
이어지는 개의 줄에는 작업 의 정보가 순서대로 주어진다. 각 줄에는 두 정수 와 가 주어지며, 는 그 작업의 처리 시간 (), 는 비용 계수 ()이다.
출력
가능한 전체 비용의 최솟값을 한 줄에 하나의 정수로 출력한다.
힌트
모든 테스트 케이스에서, 어떤 분할이든 그 전체 비용은 을 넘지 않는다.