Sua tarefa é criar um programa em que, se algum caractere for excluído, ele detectará qual caractere foi excluído e, em seguida, reinsira o caractere excluído em seu próprio arquivo de origem.
Por exemplo, se o seu programa é RadiationHardened
e é modificado para RadiaionHardened
, então ele deve produzir que o quinto byte (indexado 0) foi modificado e a fonte do programa deve estar RadiationHardened
imediatamente após a execução.
Notas e regras
- Você pode assumir que exatamente um caractere foi excluído no código-fonte antes da execução. O comportamento do programa não modificado é indefinido.
- Você pode assumir que o byte alterado será excluído, não transposto, inserido ou substituído.
- No caso de uma execução de múltiplos do mesmo caractere, você pode relatar o primeiro ou o último índice da execução, mas seja consistente com o que usa. Por exemplo,
baaad
a exclusão debaad
pode reportar 1 ou 3 (zero indexado), mas deve ser a mesma durante todo o programa. - Você não precisa gravar a fonte inteira em seu próprio arquivo. Você só precisa reinserir o byte excluído.
- Ao contrário das regras típicas para quines reforçados com radiação, detectar o byte alterado da leitura do código-fonte do próprio programa é um jogo justo.
- Você pode gerar o índice de bytes alterado através de qualquer formato razoável. Seja consistente sobre se é 0 ou 1 ou qualquer outra notação. Você pode até gerar um número dentro de uma string de modelo.
Isso é código-golfe, então o programa mais curto vence.
Boa sorte!
EDIT1: requisito alterado de substituição para exclusão
EDIT2: regra adicionada para execuções de duplicatas
code-challenge
local em que cada programa pode declarar uma lista de bytes protegidos contra radiação (mas não mais do que, digamos, 50% do tamanho total). Um sistema simples de pontuação pode contar cada byte protegido por radiação como 10 bytes, ou algo assim.
*
comando mata todos os IPs. O cardeal também não pode fazê-lo, por causa de@
.