Укрощение стада
Рано утром фермер Джон проснулся от звука треска дерева. Это были коровы, и они снова выбегали из коровника!
Фермеру Джону уже надоели утренние побеги коров, и он решил, что хватит: пора стать жестким. Он прибил к стене сарая счетчик, отслеживающий количество дней с момента последнего прорыва. Таким образом, если прорыв произошел утром, счетчик в тот день был бы 0; если последний прорыв был 3 дня назад, счетчик покажет 3. Фермер Джон каждый день тщательно регистрировал счетчик.
Конец года настал, и фермер Джон готов вести бухгалтерский учет. Он говорит, что коровы заплатят! Но о чудо, некоторые записи в его журнале отсутствуют!
Фермер Джон уверен, что он начал свой журнал в день побега. Пожалуйста, помогите ему определить из всех последовательностей событий, согласующихся с оставшимися записями в журнале, минимальное и максимальное количество побегов, которые могли иметь место в течение зарегистрированного времени.
Входные данные
Первая строка содержит единственное целое число n (1 ≤ n ≤ 100) - количество дней с тех пор, как фермер Джон начал регистрировать счетчик выхода коров.
Вторая строка содержит n целых чисел. Если i - ое число равно -1, то это указывает на отсутствие записи в журнале для дня i. Неотрицательное целое число a[i]
(не более 100) указывает на то, что в день i счетчик показывал a[i]
.
Выходные данные
Если последовательность событий не соответствует частичному протоколу фермера Джона и его знаниям о том, что коровы определенно выбрались из коровника утром дня 1, выведите единственное целое число -1. В противном случае выведите два целых числа: m и M, где m - минимальное количество выходов из любой согласованной последовательности событий, а M - максимальное.
Пример
В этом примере мы можем сделать вывод, что прорыв должен был произойти в день 3. Зная, что прорыв также произошел в день 1, единственная оставшаяся часть неопределенности заключается в том, произошел ли прорыв в день 2. Следовательно, всего было от 2 до 3 прорывов.