Les caractères ASCII imprimables (codes hexadécimaux 20 à 7E) dans l’ordre sont:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
(Notez que l'espace est là.)
Cette chaîne contient clairement tous les caractères imprimables ASCII au moins une fois par ordre croissant lors de la lecture de gauche à droite, mais pas par ordre décroissant.
La ficelle
REVERSED:~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! NORMAL: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
contient tous les caractères ASCII imprimables au moins une fois, par ordre croissant et décroissant. En d'autres termes, lorsque les caractères sont évalués avec leur code numérique, les sous- séquences les plus longues augmentant et les plus décroissantes ont une longueur de 95 (le nombre de caractères ASCII imprimables).
Défi
Choisissez un sous-ensemble contigu de N caractères ASCII imprimables, tel que LMNOP
(N = 5). Écrivez un programme utilisant uniquement les N caractères dont la sortie contient les 95 caractères ASCII dans l'ordre croissant et décroissant, comme dans l'exemple ci-dessus.
Le gagnant est la soumission avec le plus petit N. En cas d'égalité, le code le plus court en octets gagne.
Remarques
- Un sous-ensemble contigu signifie un ensemble des fichiers ASCII imprimables qui apparaissent tous dans une ligne non interrompue, tels que
LMNOP
ou89:;<=>
. - Votre sous-ensemble contigu peut "faire une boucle" depuis
~
vers l'espace, mais cela entraîne une pénalité de +3 sur N. Donc,{|}~
N = 4, mais{|}~ !
N = 6 + 3 = 9. - Votre programme ne peut contenir que les N caractères ASCII imprimables du sous-ensemble contigu que vous avez sélectionné. Ils ne doivent pas tous apparaître et peuvent apparaître plusieurs fois dans n'importe quel ordre. (Tous les fichiers ASCII non imprimables et tous les fichiers non ASCII ne sont pas autorisés. Cela signifie que les tabulations et les nouvelles lignes ne sont pas autorisées.)
- Votre sortie ne peut contenir que des caractères ASCII imprimables et doit comporter moins de 10000 caractères.
- Les sous-séquences d'augmentation et de diminution les plus longues de votre sortie doivent avoir une longueur de 95 (comme expliqué ci-dessus).
- Sortie sur stdout. Il n'y a pas d'entrée.
- N est un entier positif inférieur à 96.