Se você já tentou adicionar rótulos a uma plotagem realmente densa, perceberá que às vezes os rótulos se sobrepõem, dificultando a leitura. Nós vamos fazer algo semelhante, mas em 1D.
A entrada será uma sequência de (label, x-coordinate)
pares e a saída será o resultado do desenho de cada ponto e etiqueta, na ordem especificada. Um asterisco *
representando o ponto deve ser colocado na coordenada x fornecida e o rótulo deve seguir. Quaisquer caracteres existentes serão substituídos.
Por exemplo, se a entrada foi
Hello 0
World 8
Fizz 3
Buzz 5
PPCG 16
X 9
Então o seguinte aconteceria:
*Hello
*Hello *World
*He*Fizz*World
*He*F*Buzzorld
*He*F*Buzzorld *PPCG
*He*F*Buz*Xrld *PPCG
A linha final deve então ser impressa.
Regras de E / S
A entrada pode consistir em qualquer número de pares. Cada etiqueta consiste apenas em letras maiúsculas e minúsculas e os comprimentos das etiquetas terão no máximo 127 caracteres. Cada coordenada x estará entre 0 e 127, inclusive.
A entrada pode estar em qualquer formato conveniente de lista ou string, de modo que os pares sejam inequívocos e os rótulos / coordenadas x se alternem na entrada. Por exemplo, um formato como
[("Hello", 0), ("World", 8) ...]
ou[0 "Hello" 8 "World" ...]
está bom. No entanto, você não pode assumir duas listas separadas de rótulos e coordenadas x.Funções e programas completos estão bem.
Quaisquer pontos não cobertos por uma etiqueta devem ser representados com um espaço. No entanto, pode não haver nenhum espaço em branco inicial ou final estranho além de uma única nova linha final opcional.
Exemplos
Entrada:
OneLabel 10
Saída:
*OneLabel
Entrada:
Heathrow 0
Edinburgh 2
London 4
Liverpool 6
Oxford 8
Saída:
*H*E*L*L*Oxfordl
Entrada:
alpha 20
beta 4
gamma 57
delta 3
epsilon 22
zeta 32
eta 53
theta 27
Saída:
*delta *a*epsi*thetazeta *eta*gamma
Entrada:
abc 5
d 5
abc 10
ABCDEFGHIJKLMNOPQRSTUVWXYZ 127
Saída:
*dbc *abc *ABCDEFGHIJKLMNOPQRSTUVWXYZ
Observe que etiquetas e / ou coordenadas x podem ser repetidas.