(Tenía la intención de publicar esto mientras 1542: El conflicto de programación todavía era el xkcd actual, pero tuve un conflicto de programación).
Entrada
La entrada será una lista de 3nelementos, que representan neventos. El primer elemento en cada grupo de 3 será el nombre de un evento; el segundo y el tercero, la hora de inicio y finalización respectivamente. Por ejemplo:
foo 12 34 bar 56 78
representa un evento fooque comienza en el "tiempo 12" (los tiempos están representados simplemente por números enteros; puede pensar en ellos como minutos después de la medianoche) y termina en 34, y un segundo evento barque comienza en 56 y termina en 78.
Los nombres de los eventos siempre consistirán solo en caracteres alfanuméricos, y los tiempos siempre serán enteros ≥ 0 y <1440. La hora de finalización siempre será al menos 1 mayor que la hora de inicio. No se garantiza que se clasifiquen de ninguna manera.
Si lo desea, puede tomar esto como una sola cadena separada por espacios; de lo contrario, debe tomarse como una matriz, lista, vector o el equivalente de su idioma.
Salida
La salida debe ser una lista de nombres de eventos separados por espacios. Las reglas para los nombres de eventos que se deben generar son las siguientes:
Ninguno de los eventos que genera puede entrar en conflicto entre sí. Por ejemplo, con la entrada
a 0 10 b 5 15, es posible que no genere ambasaybporque los tiempos entran en conflicto (es decir, se superponen parcialmente). Si un evento termina exactamente como comienza otro, puede incluir ambos.No puede generar el evento llamado
NSCC("Competencia de conflicto de programación nacional"), del cual siempre habrá exactamente uno en la entrada. También debe generar al menos un evento que entre en conflicto (se superpone parcialmente) conNSCC(y siempre habrá al menos uno de esos también).Debe generar tantos eventos como sea posible mientras sigue las dos reglas anteriores. (Esto es para que parezca lo más ocupado posible, para que perder el NSCC parezca más creíble).
Esto también se puede generar como una sola cadena separada por espacios o como una matriz, lista, vector, etc.
Puede haber más de una salida posible.
Casos de prueba
Tenga en cuenta que las salidas enumeradas son solo ejemplos. Su código puede generar algo diferente, siempre y cuando siga las tres reglas anteriores (en particular, esto significa que debe haber la misma cantidad de eventos que el ejemplo).
In: UnderwaterBasketWeavingConvention 50 800 NSCC 500 550
Out:UnderwaterBasketWeavingConvention
In: SconeEating 0 50 RegexSubbing 45 110 CodeGolfing 95 105 NSCC 100 200
Out:SconeEating CodeGolfing
In: VelociraptorHunting 0 300 NerdSniping 200 500 SEChatting 400 700 DoorknobTurning 650 750 NSCC 725 775
Out:NerdSniping DoorknobTurning
In: NSCC 110 115 A 100 120 B 120 140 C 105 135 D 100 105 E 135 500
Out:C D E
In: A 800 900 NSCC 700 1000 B 650 750 C 950 1050 D 655 660 E 660 665 F 1030 1040 G 1040 1060
Out:A D E F G
In: A 10 11 B 11 12 C 12 13 D 13 14 NSCC 15 1090 E 10 16
Out:E
Siéntase libre de agregar más casos de prueba en una edición si hay casos límite que me perdí.
Reglas
Su código debe completarse dentro de los 30 segundos para todos los casos de prueba proporcionados (esto es más un control de cordura, ya que probablemente debería completarse mucho más rápido para todos los casos de prueba combinados) en una máquina personal razonable.
Este es el código de golf , por lo que gana el código más corto en bytes.

underwaterBasketWeavingConvention 50 800 nscc 550lugar de su ejemplo?