Олимпиадный тренинг

Задача . Dishwashing


Задача

Темы:
Беси и Эльза помогают Фермеру Джону мыть посуду.

Они решили, что Беси будет мыть посуду со средством, а Эльза - полоскать. Беси получила поднос грязных тарелок пронумерованных от \(1\) до \(N\) (\(1 \leq N \leq 10^5\)). Эльза получил пустой поднос, куда она должна выкладывать чистые тарелки. Между Беси и Эльзой имеется поднос тарелок помытых со средством.

На каждом шагу происходит одно из следующих событий

  • Беси берёт тарелку с вершины стека грязных тарелок, моет со средством и помещает на поднос тарелок, помытых со средством. Когда Беси кладёт тарелку помытую со средством в стек, она или кладёт её наверх существующего не пустого стека таких тарелок, или создаёт новый стек справа от всех существующих тарелок, помытых со средством.
  • Эльза берёт тарелку сверху самого левого стека, Эльза ополаскивает тарелку и кладёт её на вершину стека с чистыми тарелками.

Цель - получить стек с чистыми тарелками по порядку так, чтобы минимальный номер был в самом низу, а максимальный - в самом верху. Может получится, что это невозможно, тогда определите длину наибольшего префикса ввода, для которого такая цель достижима.

ФОРМАТ ВВОДА (файл dishes.in):

Первая строка ввода содержит \(N\). Следующие \(N\) строк указывают порядок тарелок в стеке Беси, первое число соответствует вершине стека.

ФОРМАТ ВЫВОДА (файл dishes.out):

Выведите длину наибольшего префикса входного стека, который можно успешно помыть так, что тарелки окажутся в правильном порядке на чистом подносе.


Примеры
Входные данныеВыходные данные
1 5
4
5
2
3
1
4

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя