Задача Пакетная обработка заданий

Файл входного файла: batch.in
Файл выходного файла: batch.out
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

Имеется последовательность N заданий, предназначенных для выполнения на одной машине. Задания пронумерованы от 1 до N следующим образом 1, 2, . . . N . Задания должны быть так сгруппированы в один или несколько пакетов, чтобы каждый пакет состоял из следующих друг за другом заданий исходной последовательности. Выполнение первого задания начинается в момент времени 0. Пакеты обрабатываются один за другим, начиная с первого, следующим образом. Если пакет b содержит задания с меньшими номерами, чем пакет c , то пакет b поступает на обработку раньше пакета c . Задания каждого пакета выполняются на машине последовательно. Сразу же после того, как все задания пакета выполнены, машина выводит результаты выполнения всех заданий этого пакета. Время завершения выполнения j-го задания определяется временем завершения обработки всего пакета, содержащего j-ое задание.

Чтобы подготовить машину к обработке каждого пакета, необходимо время S , которое назовем подготовительным. Для каждого i-го задания известен стоимостный коэффициент F i и время T i , необходимое для выполнения этого задания. Если пакет состоит из заданий x, x+1, . . . , x+k и поступает на обработку в момент времени t , то время завершения выполнения каждого задания пакета рассчитывается по формуле t + S + (T x + T x+1 + . . . + T x+k ) . Заметим, что машина выводит результаты всех заданий пакета в один и тот же момент времени. Если время завершения выполнения i-го задания --- O i , то стоимость выполнения этого задания составит O i x F i .

Пусть имеется 5 заданий и известно:
S=1
(T 1 , T 2 , T 3 , T 4 , T 5 ) = (1, 3, 4, 2, 1)
(F 1 , F 2 , F 3 , F 4 , F 5 ) = (3, 2, 3, 3, 4)
Если задания сгруппированы в три пакета {1, 2} , {3} , {4, 5} , то можно вычислить время завершения выполнения для них (O 1 , O 2 , O 3 , O 4 , O 5 ) = (5, 5, 10, 14, 14) и стоимости выполнения заданий (15, 10, 30, 42, 56) , соответственно. Общая стоимость выполнения сгруппированных в пакеты заданий определяется как сумма стоимостей выполнения каждого задания. Таким образом, общая стоимость выполнения всех заданий для предложенного примера будет равна 153.

Вам задана величина подготовительного времени S и последовательность N заданий, для каждого из которых определено время выполнения и стоимостный коэффициент. Требуется написать программу, которая вычисляет минимально возможную общую стоимость выполнения последовательности N заданий.

Формат входных данных

Первая строка содержит количество заданий N (1 ≤ N ≤ 10000) . Вторая строка содержит подготовительное время S, которое является целым числом (0 ≤ S ≤ 50) . Следующие N строк содержат информацию о заданиях 1, 2, . . . , N в указанном порядке. В каждой из этих строк первым задается целое число T i (1 ≤ T i ≤ 100) - время выполнения задания. За ним следует целое число F i (1 ≤ F i ≤ 100) - стоимостный коэффициент задания. Для каждого теста общая стоимость любой группировки не превосходит 2 31 - 1 .

Формат выходных данных

Ваша программа должна вывести одну строку, содержащую одно целое число, - минимальную общую стоимость выполнения последовательности N заданий.

Примеры:

ввод вывод

2
50
100 100
100 100

45000

5
1
1 3
3 2
4 3
2 3
1 4

153

Added: admin
Difficulty: 0.0
Accepted: 0
Submitted: 0
Analyze this Discuss

Обсуждение:

Начать обсуждение:

Powered by django, eJudge.