Первая позиция отрицательного баланса

Просмотр в формате PDF

Submit solution


Очки: 130
Ограничение по времени: 2.0s
Ограничение по памяти: 256M

Problem type
Allowed languages
C++, Python

Во время подсчёта голосов за одного кандидата поступает последовательность изменений его баланса поддержки. Каждое событие либо увеличивает баланс на +1, либо уменьшает его на -1.

Нужно просматривать события слева направо и поддерживать текущий суммарный баланс. Требуется определить наименьшую позицию i, на которой баланс после первых i событий впервые становится отрицательным.

Если баланс ни на одной позиции не уходит в минус, выведите -1.

Входные данные

В первой строке задано число n — количество событий (1 <= n <= 2*10^5).

Во второй строке заданы n чисел a_i, каждое из которых равно 1 или -1.

Выходные данные

Выведите наименьшую позицию с нумерацией от 1, на которой префиксная сумма впервые становится отрицательной, либо -1, если такой позиции нет.

Ограничения

  • 1 <= n <= 2*10^5
  • a_i равно 1 или -1
  • ввод осуществляется через стандартный ввод
  • вывод осуществляется через стандартный вывод

Примеры

Пример 1

Входные данные

1
-1

Выходные данные

1
Пример 2

Входные данные

1
1

Выходные данные

-1

Комментарии

Еще нет ни одного комментария.