Городские пропуска
Просмотр в формате PDFВ большом городе проходит серия мероприятий, и Дане нужно пользоваться общественным транспортом в некоторые заранее известные дни. Для поездок можно покупать специальные транспортные пропуска трёх видов:
- пропуск на 1 день;
- пропуск на 7 дней;
- пропуск на 30 дней.
Если пропуск куплен в день d, то он начинает действовать сразу в этот день. Например:
- пропуск на 1 день покрывает только день
d; - пропуск на 7 дней покрывает все дни от
dдоd + 6; - пропуск на 30 дней покрывает все дни от
dдоd + 29.
Известны все дни, в которые Дане точно нужно ехать, а также стоимости трёх видов пропусков. Требуется определить минимальную сумму, которую нужно потратить, чтобы покрыть все нужные дни поездок.
Входные данные
В первой строке записано одно целое число n — количество дней, в которые Дане нужны поездки.
Во второй строке записаны n различных целых чисел days[i] — номера дней, в которые нужно ехать. Гарантируется, что эти дни заданы в строго возрастающем порядке.
В третьей строке записаны три целых числа:
c1— стоимость пропуска на 1 день,c7— стоимость пропуска на 7 дней,c30— стоимость пропуска на 30 дней.
Выходные данные
Выведите одно целое число — минимальную стоимость, достаточную для покрытия всех нужных дней поездок.
Ограничения
1 <= n <= 3651 <= days[i] <= 365days[i] < days[i + 1]1 <= c1, c7, c30 <= 1000
Пример 1
Входные данные
6
1 4 6 7 8 20
2 7 15
Выходные данные
11
Пример 2
Входные данные
12
1 2 3 4 5 6 7 8 9 10 30 31
2 7 15
Выходные данные
17
Пояснение
В первом примере можно:
- купить пропуск на 1 день для дня
1за2, - купить пропуск на 7 дней начиная с дня
4за7, - купить пропуск на 1 день для дня
20за2.
Итоговая стоимость равна 2 + 7 + 2 = 11.
Комментарии