На столе в ряд расположено N ящиков, каждый из которых либо пуст, либо содержит несколько камней. За один ход можно сделать одно из следующих действий:
Требуется определить, можно ли достичь таким образом определенного расположения камней в ящиках, и, если можно, вычислить минимальное количество ходов, которое для этого требуется.
Входные данные
В первой строке одно натуральное число N – количество ящиков, 2 ≤ N ≤ 20.
Во второй строке N целых неотрицательных чисел ai через пробел, где ai – исходное количество камней в i-ом ящике, 0 ≤ ai ≤ 100. Сумма всех ai не больше 100.
В третьей строке N целых неотрицательных чисел bi через пробел, где bi – желаемое количество камней в i-ом ящике, 0 ≤ bi ≤ 100.
Выходные данные
Если желаемого распределения камней достичь нельзя, в первой строке вывести No solution. Иначе, в первой строке вывести одно целое число – минимальное количество ходов, за которое можно достичь желаемого распределения.
Пример входных данных31 2 3 3 2 1 |
Пример выходных данных6 |