11400. Бамбукові палиці


Відправити розв'язок

Бали: 100
Time limit: 3.0s
Memory limit: 500M

Author:
Problem type
Allowed languages
C++, Java, Pascal, Python

У вас є \(N\) бамбукові палочки. Їх довжини у сантиметрах \(l_1, l_2, ... , l_N\) відповідно. Ваша мета - використати деякі з цих палочок (можливо, усі), щоб отримати три бамбукові палиці довжинами \(A,B,C\).

Для цього ви можете використовувати три види магії:

  • Магія видовження: вартість 1 МТ (магічна точка). Виберіть одну палочку і збільшіть її довжину на 1.

  • Магія скорочення: вартість 1 МТ. Виберіть 1 палочку і зменшіть її довжину на 1.

  • Магія об'єднання: вартість 10 МТ. Виберіть дві палочки і об'єднайте їх в одну. Довжина нової палочки дорівнює сумарній довжині двох вибраних палочок.

Скільки МТ необхідно для досягнення мети.

Формат вхідних даних

Перший рядок вхідного потоку містить цілі числа \(N, A, B, C\) (\(3 \le N \le 8\), \(1 \le C < B < A \le 1000\)). Числа розділяються пропуском.

Наступні \(N\) рядків містять довжини бамбукових палочок \(l_i\) (\(1 \le l_i \le 1000\))

Формат вихідних даних

У вихідний потік виведіть мінімальну кількість МТ для досягнення мети.

Примітка

До прикладу 1:

  1. Двічі використовує МТ для збільшення 98 до 100. (2 МТ)

  2. Об'єднаємо 30 і 40 за 10 МТ. (10 МТ)

  3. Зменшимо 21 до 20 за 1 МТ (1 МТ)

  4. Об'єднаємо 70 і 20 за 10 МТ. (10 МТ)

Отже, загальна кількість МТ дорівнює 23.

Приклад вхідних даних

5 100 90 80
98
40
30
21
80

Приклад вихідних даних

23

Приклад вхідних даних

8 100 90 80
100
100
90
90
90
80
80
80

Приклад вихідних даних

0

Приклад вхідних даних

8 1000 800 100
300
333
400
444
500
555
600
666

Приклад вихідних даних

243

Коментарі

Ще немає коментарів.