Введем функцию \(f\) следующим образом. Эта функция принимает массив \(a\) длины \(n\) и возвращает массив. Изначально результат — пустой массив. Для каждого \(i\) от \(1\) до \(n\) мы добавляем \(a_i\) в конец результата, если этот элемент больше всех предыдущих (формально, если \(a_i > \max\limits_{1 \le j < i}a_j\)). Примеры применения функции \(f\):
- если \(a = [3, 1, 2, 7, 7, 3, 6, 7, 8]\), то \(f(a) = [3, 7, 8]\);
- если \(a = [1]\), то \(f(a) = [1]\);
- если \(a = [4, 1, 1, 2, 3]\), то \(f(a) = [4]\);
- если \(a = [1, 3, 1, 2, 6, 8, 7, 7, 4, 11, 10]\), то \(f(a) = [1, 3, 6, 8, 11]\).
Вам даны два массива: \(a_1, a_2, \dots , a_n\) и \(b_1, b_2, \dots , b_m\). Вы можете удалить некоторые элементы массива \(a\) (возможно, никакие). Чтобы удалить элемент \(a_i\), вы должны заплатить \(p_i\) монет (значение \(p_i\) может быть отрицательным, тогда за удаление элемента вы получаете \(|p_i|\) монет). Посчитайте минимальное кол-во монет (возможно, отрицательное), которое вы должны потратить, чтобы условие \(f(a) = b\) выполнялось.
Выходные данные
Если ответ существует, выведите YES в первой строке, а во второй — минимальное количество монет, которое надо потратить, чтобы условие \(f(a) = b\) выполнилось.
Иначе выведите NO.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
11 4 1 3 3 7 8 7 9 10 7 11 3 5 0 -2 5 3 6 7 8 2 4 3 3 7 10
|
YES
20
|
|
2
|
6 2 1 5 3 6 5 3 -9 0 16 22 -14 4 2 3 5 6
|
NO
|