Escreva um programa que utilize uma única linha que você possa assumir que conterá apenas os caracteres /\_‾
. (Isso é barra invertida e traseira, sublinhado e overline . Você pode usá-lo ~
no lugar de overline, se necessário, pois o overline não é conveniente ASCII.)
Por exemplo, uma entrada possível é:
__/‾‾\/\_/‾
Seu programa precisa gerar um valor verdadeiro ou falso, dependendo de a borda esquerda da string estar "conectada", por assim dizer, à borda direita da string através das linhas dos caracteres. Portanto, se o kerning fosse um pouco menor, haveria uma linha preta sólida (embora retorcida) todo o caminho da borda esquerda para a direita, como um pedaço ininterrupto de barbante ou barbante.
A saída para o exemplo acima seria verdadeira porque as bordas estão conectadas:
Para ser claro sobre as conexões:
/
conecta no canto inferior esquerdo e superior direito\
conecta no canto superior esquerdo e no canto inferior direito_
conecta no canto inferior esquerdo e inferior direito‾
(ou~
) se conecta no canto superior esquerdo e no canto superior direito
Além disso:
Não importa se as arestas da string começaram na parte superior ou inferior, é importante que elas se conectem horizontalmente por todo o comprimento da string.
Você pode assumir que a sequência de entrada não está vazia e, é claro, apenas uma linha.
Aqui estão mais alguns exemplos seguidos por 1 (verdade) se eles estiverem conectados ou 0 (falso) se não:
__/‾‾\/\_/‾
1
_
1
\
1
/
1
‾
1
___
1
\/
1
/\/
1
/\/\
1
‾‾‾
1
\\
0
‾‾
1
_‾
0
‾_
0
\_____/
1
\/\\/\\___
0
\/\__/‾‾\
1
______/\_____
1
‾‾‾‾‾‾\\_____
0
‾‾‾‾‾‾\______
1
_____/‾‾‾‾‾
1
\___/‾‾‾\___/‾‾‾
1
\_/_\_
0
\_/\_
1
/\/\/\/\/\/\/\/\/\/\/\/
1
____________________
1
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
1
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾/
0
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾\
1
/\‾/\‾___/\_\/__\/\‾‾
0
O código mais curto é o vencedor.