Анонс #246. Столкновение астероидов
UniLecsЗадача: дан массив целых чисел, абсолютное значение каждого элемента обозначает размер астероида. А знак числа - это направление астероида:
- положительное число - астероид направляется вправо,
- отрицательное число - астероид направляется влево.
Необходимо определить состояние астероидов после всех столкновений.
Правила столкновений:
- если два астероида встречаются, то меньший по абсолютному значению взрывается, больший остается с прежним размером.
- если оба астероида имеют одинаковый размер, то оба взорвутся.
Примечание: каждый астероид движется с одинаковой скоростью. Из этого следует, что два астероида, движущиеся в одном направлении, никогда не столкнутся.
Входные данные: arr - массив целых чисел, размер массива от 1 до 10^5. Элементы массива не превосходят по модулю 10^5.
Вывод: output - выходной массив размеров астероидов после всех возможных столкновений.
Примеры:
- arr = [4, 8, -4]
Output: [4, 8] (после столкновения 2го астероида с 3м останется только 2й, 1й астероид летит в том же направлении, что и 2й и они не встретятся). - arr = [1, -1]
Output: [] - arr = [5, 1, -4]
Output: [5] - arr = [-10, -5, 5, 10]
Output: [-10, -5, 5, 10]