Votre tâche consiste à créer un programme où, si un caractère est supprimé, il détectera le caractère supprimé, puis réinsérera le caractère supprimé dans son propre fichier source.
Par exemple, si votre programme l'est RadiationHardened
et qu'il est modifié en RadiaionHardened
, alors votre programme doit sortir que le 5ème octet (indexé 0) a été modifié et alors la source du programme doit être RadiationHardened
immédiatement après l'exécution.
Notes et règles
- Vous pouvez supposer qu'exactement un caractère a été supprimé dans le code source avant l'exécution. Le comportement du programme non modifié n'est pas défini.
- Vous pouvez supposer que l'octet modifié sera supprimé, non transposé, inséré ou remplacé.
- Dans le cas d'une exécution de plusieurs du même caractère, vous pouvez signaler le premier ou le dernier index de l'exécution, mais être cohérent sur ce que vous utilisez. Par exemple,
baaad
être supprimé debaad
peut signaler 1 ou 3 (indexé zéro), mais doit être le même tout au long du programme. - Vous n'avez pas besoin d'écrire la source entière dans son propre fichier. Il vous suffit de réinsérer l'octet supprimé.
- Contrairement aux règles typiques pour les quines durcies aux radiations, détecter l'octet modifié à partir de la lecture du code source du programme est un jeu équitable.
- Vous pouvez sortir l'index d'octets modifié à travers n'importe quel format raisonnable. Soyez cohérent quant à savoir s'il est indexé 0 ou indexé 1 ou toute autre notation. Vous pouvez même sortir un nombre dans une chaîne de modèle.
C'est le code-golf, donc le programme le plus court l'emporte.
Bonne chance!
EDIT1: modification de l'exigence de remplacement à suppression
EDIT2: règle ajoutée pour les exécutions de doublons
code-challenge
où chaque programme est autorisé à déclarer une liste d'octets qui sont protégés contre les radiations (mais pas plus - disons - 50% de la taille totale). Un système de notation simple pourrait être de compter chaque octet protégé contre les radiations comme 10 octets, ou quelque chose comme ça.
*
commande tue toutes les IP. Le cardinal ne peut pas le faire non plus, à cause de@
.