Lei de Equilíbrio
Uma gangorra (supostamente do francês 'ci-ça', que significa 'isso-aquilo') forma um terço da trindade sagrada dos equipamentos de playground, junto com o deslizamento e balanço igualmente onipresentes. Uma gangorra está em perfeito equilíbrio se, e somente se, a soma dos momentos de cada lado for equivalente. Uma gangorra pode, portanto, ser equilibrada adicionando uma quantidade específica de peso ao lado com a soma do momento mais baixo; alcançar este é o seu objetivo para este desafio.
Desafio
Seu desafio é fazer uma representação de uma gangorra como entrada e produzi-la novamente, com peso adicionado a uma extremidade da gangorra para equilibrá-la.
Entrada
Seu programa deve levar, em qualquer formato razoável, uma gangorra ASCII, como a seguinte:
100 100
-------------------
^
A primeira linha contém dois números, cada um representando pesos na gangorra. Exatamente um peso está presente em cada lado, cada um atuando no final do seu lado da prancha. Os pesos são garantidos como inteiros e sempre alinhados com a extremidade correspondente da prancha. Esses números nunca se sobrepõem ao ponto de apoio ( ^
).
A segunda linha representa a 'prancha' da gangorra. Cada traço ( -
) representa um comprimento igual ao outro traço, com a única exceção do traço diretamente sobre o ponto de apoio ( ^
), que não tem comprimento.
A terceira linha representa o ponto de apoio da gangorra. Esse ponto de apoio é marcado pelo único caractere que não é um espaço nesta linha, um circunflexo ('^'). O ponto de apoio pode ser posicionado em qualquer lugar ao longo do comprimento da prancha em uma entrada válida, desde que haja espaço suficiente para que os números que representam pesos não se sobreponham ao ponto de apoio na entrada ou na saída.
É garantido que a entrada tenha três linhas e não tenha espaço em branco antes ou depois dos caracteres que constituem a gangorra (exceto, é claro, a terceira linha, que exige isso).
Resultado
Para saída, a mesma representação da gangorra deve ser impressa em stdout, mas com um (e apenas um) dos pesos substituídos por um peso maior, para equilibrar a gangorra. As entradas são garantidas para tornar isso possível usando apenas números inteiros. Portanto, os pesos devem ser mostrados sem pontos decimais ou outras notações semelhantes. Se o seu idioma não usa stdout, você deve concordar com a comunidade / meta meta na saída. As novas linhas à direita são boas, mas qualquer outra alteração no formato da representação provavelmente não está correta.
Exemplificação
Entradas de teste e saídas correspondentes
Entrada 1
12 22
--------------------
^
Saída 1
12 26
--------------------
^
Entrada 2
42 42
-----------
^
Saída 2
42 42
-----------
^
Entrada 3
3 16
----------------
^
Saída 3
14 16
----------------
^
Entrada 4
1 56
-------------------
^
Saída 4
196 56
-------------------
^
Implementação de referência - Python 3
# Takes a list of strings as input
def balance_seesaw(lines):
weights = [int(w.strip()) for w in lines[0].split()]
length = len(lines[1])
pivot = lines[2].find("^")
left_length = pivot
right_length = length - 1 - pivot
left_torque = weights[0] * left_length
right_torque = weights[1] * right_length
if left_torque > right_torque:
weights[1] = left_torque // right_length
elif right_torque > left_torque:
weights[0] = right_torque // left_length
weights = [str(w) for w in weights]
string_gap = " " * (length - sum(len(w) for w in weights))
lines[0] = weights[0] + string_gap + weights[1]
print("\n".join(lines))
balance_seesaw(["1 56",
"-------------------",
" ^ "])
Regras
Isso é código-golfe , então o código mais curto vence contado em bytes. Verifique a meta se a contagem de bytes é estranha no seu idioma.
Regras / lacunas padrão se aplicam.
A entrada deve ser obtida em um formato razoável. Uma lista não exaustiva dos formatos apropriados é fornecida da seguinte maneira:
- Uma única sequência com linhas separadas por caracteres de nova linha
- Uma lista de cadeias, cada cadeia representava uma linha
- Uma matriz 2D ou matriz de caracteres
Desafios relacionados
- Equilibrar um conjunto de pesos em uma gangorra - Proposta em agosto de 2015 por samgak