To jest proste: wydrukuj wykres Gantta ASCII .
Biorąc pod uwagę zakresy zadań (czas rozpoczęcia - krotki czasu zakończenia), wydrukuj oś czasu Gantta w postaci -
znaków dla każdego czasu trwania zadania - każde zadanie w nowej linii.
Przykład
Powiedzmy, że moje zakresy zadań są następujące 28->35, 34->40, 39->44
, Gantt będzie wyglądał następująco:
-------
------
-----
Dane techniczne
- Możesz napisać pełny program, funkcję o nazwie lub funkcję anonimową.
- Twój program / funkcja powinna zaakceptować zadania przez STDIN lub jako argumenty .
- Każde zadanie powinno być reprezentowane jako ciąg liczb całkowitych
start->end
gdziestart
iend
są . Zadania są oddzielone spacjami lub przecinkami. Alternatywnie , możesz otrzymać go jako krotkę liczb całkowitych lub jako tablicę / kolekcję 2 liczb całkowitych. (Na przykład w JavaScript można go pobrać jako - jest to dozwolone).[start,end]
- Każda nieujemna liczba zadań (argumentów) powinna być obsługiwana.
Aby to wyjaśnić, pojedynczy argument kolekcji zadań jest niedozwolony. Możesz parsować pojedynczy argument ciągu lub obsługiwać argumenty zadań o zerowej lub większej liczbie zadań. Gdzie zadaniem jest krotka lub kolekcja wielkości 2.- Możesz założyć, że podane zostaną tylko prawidłowe dane wejściowe. Oznacza to, że każde zadanie ma pozytywny czas trwania.
- Zwracana wartość nie ma znaczenia, kod musi wydrukować oś czasu na STDOUT.
- Dane wyjściowe: na zadanie,
start
spacje(end-start)
i myślniki oraz a\n
. - Nie trzeba dodawać, że linie wyjściowe należy porządkować odpowiednio do kolejności wprowadzania (zadań).
- Końcowe spacje przed nimi
\n
są dozwolone, jeśli to ci pomoże.
Przypadki testowe
Input:
(empty)
Output:
(empty)
Input:
0->7,5->6,3->6
Output:
-------
-
---
Input:
5->20,5->20,2->10,15->19
Output:
---------------
---------------
--------
----
Zwycięski
- To jest golf golfowy, więc wygrywa najmniejsza długość kodu (w bajtach).
- Tradycyjnie remis jest wcześniejszy.
- „Standardowe luki nie są już śmieszne”.
-----
EDYTOWAĆ
Ponieważ wielu z was zrozumiało, że może istnieć pojedynczy argument kolekcji zadań, a ponieważ nie ma wiele różnic między tym a oryginalnym wymaganiem varargs , teraz można mieć pojedynczy argument kolekcji, jeśli nie chce się używać opcja varargs lub w przypadku, gdy Twój język nie obsługuje varargs.
arguments
w obrębie funkcji, ale nie możesz zakładać, że arguments[0]
jest to tablica zadań.
To make it clear...
) nie jest wcale jasne.