Анонс #246. Столкновение астероидов

Анонс #246. Столкновение астероидов

UniLecs

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

  • положительное число - астероид направляется вправо,
  • отрицательное число - астероид направляется влево.

Необходимо определить состояние астероидов после всех столкновений. 

Правила столкновений:

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

Примечание: каждый астероид движется с одинаковой скоростью. Из этого следует, что два астероида, движущиеся в одном направлении, никогда не столкнутся. 

Входные данные: arr - массив целых чисел, размер массива от 1 до 10^5. Элементы массива не превосходят по модулю 10^5.

Вывод: output - выходной массив размеров астероидов после всех возможных столкновений.

Примеры: 

  1. arr = [4, 8, -4]
    Output: [4, 8] (после столкновения 2го астероида с 3м останется только 2й, 1й астероид летит в том же направлении, что и 2й и они не встретятся).
  2. arr = [1, -1]
    Output: []
  3. arr = [5, 1, -4]
    Output: [5]
  4. arr = [-10, -5, 5, 10]
    Output: [-10, -5, 5, 10]

Report Page