Este es simple: imprima un diagrama de Gantt ASCII .
Dados los rangos de las tareas (tiempo de inicio - Tuplas de tiempo de finalización), imprima una línea de tiempo de Gantt en forma de -
caracteres para la duración de cada tarea, cada tarea en una nueva línea.
Ejemplo
Digamos que mis rangos de tareas son 28->35, 34->40, 39->44
, el Gantt se verá así:
-------
------
-----
Presupuesto
- Puede escribir un programa completo, una función con nombre o una función anónima.
- Su programa / función debe aceptar las tareas a través de STDIN o como argumentos .
- Cada tarea debe representarse como una cadena de
start->end
dóndestart
yend
son enteros . Las tareas están separadas por espacios o comas. Alternativamente , puede obtenerlo como una Tupla de enteros, o como una matriz / colección de 2 enteros. (Por ejemplo, en JavaScript puede obtenerlo como[start,end]
: esto está permitido). - Se debe admitir cualquier número no negativo de tareas (argumentos).
Para que quede claro, no se permite un único argumento de recopilación de tareas. Puede analizar un solo argumento de cadena o admitir argumentos de cero o más tareas. Donde la tarea es una tupla o una colección de tamaño 2.- Puede suponer que solo se proporcionarán datos válidos. Eso significa que cada tarea tiene una duración positiva.
- El valor de retorno no importa, su código debe imprimir la línea de tiempo en STDOUT.
- Salida: por tarea,
start
espacios seguidos de(end-start)
guiones y a\n
. - No es necesario decir que las líneas de salida deben ordenarse en correspondencia con el orden de entrada (tareas).
- Los espacios finales antes del
\n
están permitidos, si eso te ayuda.
Casos de prueba
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
Victorioso
- Este es el código de golf, por lo que gana la menor longitud de código (en bytes).
- Tradicionalmente, el desempate es la publicación anterior.
- "Las lagunas estándar ya no son divertidas".
-----
EDITAR
Como muchos de ustedes entendieron que está permitido tener un único argumento de recopilación de tareas, y dado que no hay mucha diferencia entre eso y el requisito original de varargs , ahora está permitido tener un único argumento de recopilación, si no desea usar la opción varargs, o en caso de que su idioma no sea compatible con varargs.
arguments
dentro de la función, pero no puede suponer que se arguments[0]
trata de una serie de tareas.
To make it clear...
) no está claro en absoluto.