Проходная клуба робототехники

тема: Моделирование процессов · уровень: средний

Условие

В клубе робототехники стоит электронная проходная. За день она записала события: кто-то вошёл (команда in) или вышел (команда out).

Внутри клуба в начале дня никого нет.

Правила журнала:

Нужно вывести, сколько людей осталось внутри в конце дня, какой был пик, и сколько ошибок случилось.

Формат ввода

Формат вывода Выведите ровно 3 строки:

Ограничения

Пример Ввод:

7
in
in
out
out
out
in
out

Вывод:

внутри: 0
пик: 2
ошибки: 1

Как решать — идея подхода

Приём: Симуляция (пошаговое моделирование)

Ключевое наблюдение: каждое событие влияет только на текущее число людей внутри, поэтому ничего «умного» искать не надо — достаточно честно промоделировать день, обновляя состояния после каждой команды.

Приём: симуляция (пошаговое моделирование). Он работает, потому что правила локальные: in всегда +1, а out либо -1, либо фиксирует ошибку, если внутри уже 0.

План решения:

Сложность: O(n) по времени и O(1) по памяти.

Частая ошибка: обновлять peak после команды out или в конце дня. Пик должен считаться по всем моментам, и измениться он может только после успешного in.

Решить задачу с автопроверкой на Python →

Куда дальше