Este é o tópico dos policiais. Para o tópico dos ladrões, clique aqui .
Introdução
Para esse desafio de Policiais / Ladrões, os policiais escreverão programas de produção de saída e os entrelaçarão juntos. O trabalho do ladrão é separar os programas da polícia para produzir os resultados desejados.
Regras de policial
Os policiais podem usar até 256 bytes no total para gravar entre 2 e 8 programas (inclusive), todos os quais devem produzir alguma saída. Todos os programas escritos devem estar no mesmo idioma. Os policiais "entrelaçam" seus programas juntos para tornar mais difícil para os ladrões descobrir quais são os programas.
Agora, para uma descrição do entrelaçamento. Considere as seqüências que representam os diferentes programas. O processo de entrelaçamento é a repetição do primeiro caractere de qualquer um dos programas e a concatenação até o final de uma nova sequência até que nenhum caractere seja deixado em nenhum dos programas. Por exemplo, se dois programas são lion
e TIGER
, um possível entrelaçamento é TIliGoEnR
. No entanto, os programas não podem ser embaralhados de forma alguma, portanto, RoITEnlGi
não é aceitável.
Deve-se observar que, quando os caracteres de todos os programas, com exceção de um, são removidos dos resultados de uma entrelaçamento, o programa restante será mostrado intacto. Removendo as letras TIGER
dos TIliGoEnR
resultados em lion
.
Todos os programas e saídas da polícia devem conter apenas caracteres ASCII imprimíveis (20-7E) e novas linhas. Os programas não devem conter erros e devem ser executados em 10 segundos em uma máquina razoável. Para qualquer envio, deve haver um intérprete gratuito do idioma em algum lugar. Não é permitido adicionar comentários aos envios, como hash e outras formas de criptografia. Programas em branco não são permitidos (Sorry Stuck ).
O policial publicará o código entrelaçado, o idioma, o número de programas diferentes usados e a saída de cada programa. Um grande obrigado a Martin por escrever esse script CJam para entrelaçar automaticamente seus programas.
Os programas são considerados seguros depois de decorrida uma semana a partir do momento da postagem. Nesse ponto, a polícia deve postar os programas individuais para receber pontos.
Pontuação
Existem dois componentes que são adicionados ao marcar um envio seguro.
- 256 dividido pela quantidade 2 elevada à potência do número de programas utilizados.
- Arredonde o número de bytes na entrelaçamento até a potência mais próxima de 2 e divida-o em 256.
Por exemplo, se a entrada TIliGoEnR
(9 bytes) fosse segura, ela receberia 256/2 ^ 2 + 256/16 = 80 pontos.
Quando o envio de um policial é quebrado, o policial perde 16 pontos. O policial deve indicar que o envio foi quebrado.
O vencedor do desafio da polícia será a pessoa com mais pontos após um período de tempo suficiente para as pessoas participarem.
Entre os melhores
Este é um trabalho em andamento que foi adaptado pelo intrepidcoder a partir desta questão .
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o modelo exato do Markdown:
# Language Name, N programs, M bytes; Score ###/### (if safe/cracked)
Qualquer coisa após um ponto e vírgula será ignorada, para que você possa colocar sua pontuação lá.
Se o seu envio for seguro, coloque um cabeçalho como este:
# Language Name, safe, N programs, M bytes; Score ###
Se estiver rachado, coloque um cabeçalho como este:
# Language Name, [cracked](link-to-crack), N programs, M bytes; Score -16
|||
exemplo) e depois substituir N
o código por uma string que contenha seu delimitador, por exemplo "|||"
. (@Eridan à vontade para incluir esta no desafio.)