Objetivo
Tenho uma bela foto que quero pendurar na parede. E eu quero que ele fique pendurado lá de uma maneira espetacular, então eu escolhi pendurá-lo nas n
unhas onde n
houver um número inteiro positivo.
Mas também sou indeciso, por isso, se mudar de idéia, não quero muitos problemas para tirar a foto. Portanto, remover qualquer uma das n
unhas deve fazer a imagem cair. Eu mencionei que não há atrito na minha casa?
Pode me ajudar?
Regras
- Seu programa deve ler o número
n
de stdin e imprimir em stdout (ou equivalentes do seu idioma). - A saída deve ser a solução de acordo com a especificação de saída sem nenhum outro caractere inicial ou final. No entanto, espaços em branco à direita e / ou novas linhas são aceitáveis.
- Você deve usar exatamente as
n
unhas. - Assumindo um mundo sem atritos, sua solução deve atender às seguintes condições:
- Pendurando a imagem conforme descrito pela sua solução, a imagem não deve cair.
- Se qualquer uma das unhas for removida, a imagem deverá cair.
- Aplicam-se brechas padrão. Em particular, você não pode fazer solicitações, por exemplo, ao programa de verificação para soluções de força bruta.
Observe que 4.2 já implica que todas as n
unhas devem estar envolvidas.
Especificação de saída
- Todas as unhas são nomeadas da esquerda para a direita com a posição em que estão, começando em
1
. - Existem duas maneiras fundamentais de colocar a corda em torno de um prego: no sentido horário e anti-horário. Denotamos um passo no sentido horário com
>
e um passo no sentido anti-horário com<
. - Toda vez que a corda é colocada em torno de uma unha, ela sai por cima das unhas; portanto, pular as unhas significa que ela passará pela parte superior das unhas intermediárias.
- Toda solução deve começar na unha
1
e terminar na unhan
. - A saída deve consistir em uma sequência de etapas em que uma etapa é uma combinação do nome da unha e a direção na qual colocar a corda em torno dela.
Saída de exemplo
Aqui está um exemplo de saída para n=5
e n=3
:
1>4<3<2>4>5< # n=5, incorrect solution
1>2<1<2>3<2<1>2>1<3> # n=3, correct solution
E aqui está uma representação visual da solução incorreta para n=5
(awsumz gimp skillz)
A solução correta para n=1
é simplesmente 1>
ou 1<
. Para unhas múltiplas, pode haver soluções diferentes. Você só deve produzir um, pois isso faz parte da sua pontuação.
Verificação
Você pode verificar se uma solução está correta aqui: www.airblader.de/verify.php .
Ele usa uma solicitação GET, para que você possa chamá-la diretamente, se desejar. Por exemplo, se foo
é um arquivo que contém uma solução em cada linha, você pode usar
cat foo | while read line; do echo `wget -qO- "www.airblader.de/verify.php?solution=$line" | grep "Passed" | wc -l`; done
Se você acredita que uma solução está correta, mas o verificador a marcar como incorreta, informe-me!
Edit: E se a sua saída for tão longa que uma solicitação GET não for cortada, avise-me e eu farei uma versão da solicitação POST. :)
Pontuação
Isso é código-golfe. A pontuação é o número de bytes do seu código-fonte na codificação UTF-8, por exemplo, use esta ferramenta . No entanto, há um bônus potencial para cada envio:
Execute seu programa para todos n
no intervalo [1..20]
e adicione o comprimento de todas as saídas para determinar sua pontuação de saída . Subtraia sua pontuação de saída 6291370
para obter o número de pontos de bônus que você pode deduzir da sua contagem de bytes para obter sua pontuação geral . Não há penalidade se sua pontuação de saída for maior que esse número.
A finalização com a menor pontuação geral vence. No caso improvável de empate, os desempates estão nesta ordem: pontos de bônus mais altos, menor contagem de bytes, data de envio anterior.
Por favor, publique as partes individuais (contagem de bytes, pontos de bônus) da pontuação e a pontuação final, por exemplo, " LOLCODE (44 - 5 = 39)
".
1>
é desenhado na figura). E não há n
onde nenhuma solução seja possível. Uma solução válida para n=2
é 1>2<1<2>
.