Jeśli kiedykolwiek próbowałeś dodać etykiety do naprawdę gęstej działki, zdasz sobie sprawę, że czasami etykiety nakładają się na siebie, co utrudnia ich czytanie. Zrobimy coś podobnego, ale w 1D.
Dane wejściowe będą sekwencją (label, x-coordinate)par, a dane wyjściowe będą wynikiem losowania każdego punktu i etykiety w podanej kolejności. Gwiazdka *reprezentująca punkt powinna być umieszczona na danej współrzędnej x, a etykieta powinna następować. Wszelkie istniejące postacie zostaną zastąpione.
Na przykład, jeśli dane wejściowe były
Hello 0
World 8
Fizz 3
Buzz 5
PPCG 16
X 9
Wtedy miałyby miejsce następujące zdarzenia:
*Hello
*Hello *World
*He*Fizz*World
*He*F*Buzzorld
*He*F*Buzzorld *PPCG
*He*F*Buz*Xrld *PPCG
Ostateczny wiersz powinien być następnie wyprowadzony.
Zasady we / wy
Dane wejściowe mogą składać się z dowolnej liczby par. Każda etykieta będzie składać się wyłącznie z wielkich i małych liter, a długość etykiety będzie wynosić maksymalnie 127 znaków. Każda współrzędna x będzie zawierać się między 0 a 127 włącznie.
Dane wejściowe mogą być w dowolnym dogodnym formacie listy lub ciągu, tak że pary są jednoznaczne, a etykiety / współrzędne x zmieniają się na wejściu. Na przykład format podobny do
[("Hello", 0), ("World", 8) ...]lub[0 "Hello" 8 "World" ...]jest w porządku. Nie można jednak zakładać dwóch osobnych list etykiet i współrzędnych x.Funkcje i pełne programy są w porządku.
Wszelkie miejsca nie pokryte etykietą powinny być reprezentowane spacją. Jednak nie może istnieć żadna obca wiodąca lub końcowa biała spacja oprócz pojedynczej opcjonalnej końcowej nowej linii.
Przykłady
Wkład:
OneLabel 10
Wydajność:
*OneLabel
Wkład:
Heathrow 0
Edinburgh 2
London 4
Liverpool 6
Oxford 8
Wydajność:
*H*E*L*L*Oxfordl
Wkład:
alpha 20
beta 4
gamma 57
delta 3
epsilon 22
zeta 32
eta 53
theta 27
Wydajność:
*delta *a*epsi*thetazeta *eta*gamma
Wkład:
abc 5
d 5
abc 10
ABCDEFGHIJKLMNOPQRSTUVWXYZ 127
Wydajność:
*dbc *abc *ABCDEFGHIJKLMNOPQRSTUVWXYZ
Pamiętaj, że etykiety i / lub współrzędne X mogą się powtarzać.