Las partículas que chocan
- O(n²) · Muy difícil
- Plan completo
- Python
- JavaScript
- listas
- ciclos
- comparaciones
Enunciado
Anneliese Brandt, física experimental, apaga el haz del acelerador lineal y necesita saber qué partículas siguen vivas en el tubo de vacío. Recibes particulas, la fila del tubo de izquierda a derecha: enteros distintos de 0 (puede venir vacía). El signo es la dirección (positivo a la derecha, negativo a la izquierda) y el valor absoluto, la masa. Todas van a la misma velocidad: solo chocan una que va a la derecha y la que tiene justo después, si esa va a la izquierda. Dos en la misma dirección nunca se alcanzan, y un -2 seguido de un 1 se alejan. En un choque se desintegra la de menos masa y la otra sigue igual; con masas iguales, las dos. Al quitar una, sus vecinas quedan pegadas y pueden chocar: repite hasta que no haya ningún choque pendiente. Regresa las que sobreviven, en su orden, o [] si no queda ninguna. Con [3, -7, 2, 4, -4]: 3 choca con -7 y el 3 se desintegra; 4 y -4 pesan igual y se van las dos; el 2 ya no tiene con quién chocar. Regresas [-7, 2].
Ejemplos
El ejemplo
[3, -7, 2, 4, -4] → [-7, 2]
La pesada se come a la ligera
[5, 10, -5] → [5, 10]
Masas iguales, se van las dos
[8, -8] → []
Se alejan y nadie choca
[-2, -1, 1, 2] → [-2, -1, 1, 2]
Un choque abre otro
[10, 2, -5] → [10]
Una sola partícula
[4] → [4]
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def sobrevivientes(particulas):
passJavaScript
function sobrevivientes(particulas) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.
Más retos de O(n²)
- Las pistas del cumpleañosciclos · listas · índices
- Lluvia entre las rocaslistas · ciclos · comparaciones
- Los avisperos del viverorejillas · textos · ciclos
- Los caballos del kancomparaciones · ciclos · listas
- Los caminos por la obrarecursión · rejillas · diccionarios
- Los camiones que pasaronlistas · comparaciones · condicionales