Баланс нагрузки в микроэнергосети

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

Submit solution


Очки: 120
Ограничение по времени: 1.0s
Ограничение по памяти: 64M

Автор:
Problem type
Allowed languages
C++, Python

Первая олимпиада Олмат.Программирование. 23.02.26

Тема: Энергосистемы Уровень: Новичок


📜 Четвертая находка

Цифровой археолог обнаружил фрагменты древней распределённой энергосети. Это была одна из первых микроэнергосистем, где станции передавали энергию последовательно — от узла к узлу, как по цепочке.

Каждая станция могла либо производить избыточную энергию, либо испытывать дефицит. Изменения фиксировались в виде последовательности чисел — положительные значения означали приток энергии, отрицательные — потребление или потери.

Но система была хрупкой. Если в какой‑то точке цепочки накопленный запас становился отрицательным — происходил выброс.

Выброс — это критическое состояние участка сети, при котором энергии недостаточно для поддержания работы узлов. После выброса происходил каскадный сбой всей системы.

Ваша задача — определить, могла ли эта сеть работать стабильно.


🧠 Немного о технологии

Микроэнергосеть — это распределённая система передачи энергии между локальными станциями. В ранних версиях таких сетей энергия передавалась линейно: каждый следующий участок зависел от накопленного остатка предыдущего.

Баланс определялся не только конечным результатом, но и состоянием в каждой точке передачи.

Если в процессе передачи суммарная энергия становилась отрицательной — происходил выброс, и сеть считалась нестабильной.


⚙️ Алгоритм как применяется на практике

В инженерных расчётах используется метод накопления значений.

Мы последовательно суммируем изменения энергии:

  • начинаем с нулевого баланса,
  • прибавляем значение текущего участка,
  • проверяем, не стал ли суммарный баланс отрицательным.

Если хотя бы в одной точке баланс меньше нуля — система нестабильна.

Этот подход применяется в:

  • моделировании энергосетей,
  • анализе потоков ресурсов,
  • проверке корректности финансовых транзакций,
  • контроле производственных линий.

📌 Задача

Дан массив целых чисел — изменения энергии на каждом участке цепочки.

Необходимо определить, возможен ли баланс системы без отрицательного остатка на любом этапе передачи.

Если в процессе накопления сумма ни разу не становится отрицательной — система стабильна.


📥 Формат входных данных

В первой строке дано целое число n — количество участков цепочки.

Во второй строке дано n целых чисел — изменения энергии на каждом участке.

Ограничения
  • 1 ≤ n ≤ 10^5
  • -10^9 ≤ a[i] ≤ 10^9

📤 Формат выходных данных

Выведите:

  • "YES", если система может работать без выбросов;
  • "NO", если в какой-либо точке возникает отрицательный баланс.

📘 Примеры

Пример 1

Входные данные: 5 3 -1 2 -2 1

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


Пример 2

Входные данные: 4 2 -5 3 1

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


Пример 3

Входные данные: 3 1 1 -3

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


Комментарии

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