Objectif
J'ai une jolie photo que je veux accrocher à mon mur. Et je veux qu'il soit accroché de manière spectaculaire, j'ai donc choisi de l'accrocher sur des nclous où se ntrouve un entier positif.
Mais je suis aussi indécis, donc si je change d'avis, je ne veux pas avoir beaucoup de mal à prendre la photo. Par conséquent, retirer l'un des nclous devrait faire tomber l'image. Ai-je mentionné qu'il n'y a pas de friction dans ma maison?
Pouvez-vous m'aider?
Règles
- Votre programme doit lire le nombre
ndepuis stdin et imprimer vers stdout (ou les équivalents de votre langue). - La sortie doit être la solution selon la spécification de sortie sans aucun autre caractère de fin ou de début. Cependant, les espaces blancs et / ou les retours à la ligne de fin sont acceptables.
- Vous devez utiliser exactement des
nclous. - En supposant un monde sans friction, votre solution doit remplir les conditions suivantes:
- En accrochant l'image comme décrit par votre solution, l'image ne doit pas tomber.
- Si l'un des clous est retiré, l'image doit tomber.
- Des échappatoires standard s'appliquent. En particulier, vous ne pouvez pas adresser de demande, par exemple, au programme de vérification à des solutions de force brute.
Notez que 4.2 implique déjà que tous les nclous doivent être impliqués.
Spécifications de sortie
- Tous les ongles sont nommés de gauche à droite avec la position dans laquelle ils se trouvent, en commençant par
1. - Il existe deux façons fondamentales de placer la chaîne autour d'un clou: dans le sens horaire et anti-horaire. On note un pas dans le sens horaire avec
>et un pas dans le sens anti-horaire avec<. - Chaque fois que la ficelle est placée autour d'un clou, elle sort par-dessus les ongles, donc sauter des ongles signifie que la ficelle traversera le haut des ongles intermédiaires.
- Chaque solution doit commencer sur l'ongle
1et se terminer sur l'onglen. - La sortie doit consister en une séquence d'étapes dans laquelle une étape est une combinaison du nom de l'ongle et de la direction dans laquelle placer la chaîne.
Exemple de sortie
Voici un exemple de sortie pour n=5et 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
Et voici une représentation visuelle de la solution incorrecte pour n=5(awsumz gimp skillz)

La solution correcte pour n=1est simplement 1>ou 1<. Pour plusieurs ongles, il peut y avoir différentes solutions. Vous ne devez en produire qu'un, car cela fait partie de votre score.
Vérification
Vous pouvez vérifier si une solution est correcte ici: www.airblader.de/verify.php .
Il utilise une requête GET, vous pouvez donc l'appeler directement si vous le souhaitez. Par exemple, si fooun fichier contient une solution sur chaque ligne, vous pouvez utiliser
cat foo | while read line; do echo `wget -qO- "www.airblader.de/verify.php?solution=$line" | grep "Passed" | wc -l`; done
Si vous pensez qu'une solution est correcte mais que le vérificateur la marque comme incorrecte, faites-le moi savoir!
Edit: Et si votre sortie est si longue qu'une requête GET ne la coupera pas, faites le moi savoir et je ferai une version de requête POST. :)
Notation
C'est du code-golf. Le score est le nombre d'octets de votre code source dans le codage UTF-8, par exemple, utilisez cet outil . Cependant, il y a un bonus potentiel pour chaque soumission:
Exécutez votre programme pour tous ndans la plage [1..20]et ajoutez la longueur de toutes les sorties pour déterminer votre score de sortie . Soustrayez votre score de sortie de 6291370pour obtenir le nombre de points bonus que vous pouvez déduire de votre nombre d'octets pour obtenir votre score global . Il n'y a pas de pénalité si votre score de sortie est supérieur à ce nombre.
La soumission avec le score global le plus bas gagne. Dans le cas peu probable d'une égalité, les bris d'égalité sont dans cet ordre: points bonus plus élevés, nombre d'octets inférieur, date de soumission plus précoce.
Veuillez afficher à la fois les parties individuelles (nombre d'octets, points bonus) du score et le score final, par exemple, " LOLCODE (44 - 5 = 39)".
1>est dessiné dans l'image). Et il n'y a npas de solution impossible. Une solution valable pour n=2is 1>2<1<2>.