Obbiettivo
Ho una bella foto che voglio appendere al mio muro. E voglio che rimanga lì in modo spettacolare, quindi ho scelto di appenderlo sulle nunghie dove nc'è un numero intero positivo.
Ma sono anche indeciso, quindi se cambio idea, non voglio molti problemi a buttare giù la foto. Pertanto, la rimozione di uno qualsiasi dei nchiodi dovrebbe far cadere l'immagine. Ho già detto che non c'è attrito in casa mia?
Mi potete aiutare?
Regole
- Il tuo programma deve leggere il numero
nda stdin e stampare su stdout (o equivalenti nella tua lingua). - L'output deve essere la soluzione in base alle specifiche di output senza altri caratteri finali o iniziali. Tuttavia, è accettabile lo spazio bianco finale e / o le nuove righe.
- Devi usare esattamente le
nunghie. - Supponendo un mondo privo di attriti, la soluzione deve soddisfare le seguenti condizioni:
- Appendere l'immagine come descritto dalla soluzione, l'immagine non deve cadere.
- Se viene rimosso uno qualsiasi dei chiodi, l'immagine deve cadere.
- Si applicano scappatoie standard. In particolare, non è possibile effettuare richieste, ad esempio, al programma di verifica per soluzioni a forza bruta.
Si noti che 4.2 implica già che tutti i nchiodi devono essere coinvolti.
Specifiche di uscita
- Tutti i chiodi sono nominati da sinistra a destra con la posizione in cui si trovano, a partire da
1. - Esistono due modi fondamentali per mettere la corda attorno a un chiodo: in senso orario e antiorario. Indichiamo un passo in senso orario con
>e un passo in senso antiorario con<. - Ogni volta che la corda viene messa attorno a un chiodo, esce sopra le unghie, quindi saltare le unghie significa che la corda passerà attraverso la parte superiore delle unghie intermedie.
- Ogni soluzione deve iniziare sull'unghia
1e terminare sull'unghian. - L'output deve consistere in una sequenza di passaggi in cui un passaggio è una combinazione del nome del chiodo e della direzione in cui inserirvi la corda.
Esempio di output
Ecco un esempio di output per n=5e 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
Ed ecco una rappresentazione visiva della soluzione errata per n=5(awsumz gimp skillz)

La soluzione corretta per n=1è semplicemente 1>o 1<. Per più unghie, ci possono essere diverse soluzioni. Devi solo produrne uno poiché fa parte del tuo punteggio.
Verifica
Puoi verificare se una soluzione è corretta qui: www.airblader.de/verify.php .
Utilizza una richiesta GET, quindi puoi chiamarla direttamente se lo desideri. Ad esempio, se fooè un file contenente una soluzione su ciascuna riga, è possibile utilizzare
cat foo | while read line; do echo `wget -qO- "www.airblader.de/verify.php?solution=$line" | grep "Passed" | wc -l`; done
Se ritieni che una soluzione sia corretta ma il verificatore la contrassegni come errata, per favore fatemelo sapere!
Modifica: e se il tuo output è così lungo che una richiesta GET non la taglia, fammelo sapere e farò una versione di richiesta POST. :)
punteggio
Questo è code-golf. Il punteggio è il numero di byte del codice sorgente nella codifica UTF-8, ad esempio utilizzare questo strumento . Tuttavia, esiste un potenziale bonus per ogni invio:
Esegui il programma per tutti nnell'intervallo [1..20]e aggiungi la lunghezza di tutti gli output fino a determinare il punteggio di output . Sottrarre il punteggio di output 6291370per ottenere il numero di punti bonus che è possibile detrarre dal conteggio dei byte per ottenere il punteggio complessivo . Non è prevista alcuna penalità se il punteggio di output è superiore a questo numero.
Vince l'invio con il punteggio complessivo più basso. Nel caso improbabile di un pareggio, i pareggiatori sono in questo ordine: punti bonus più alti, numero di byte inferiore, data di invio precedente.
Si prega di pubblicare sia le singole parti (numero di byte, punti bonus) del punteggio sia il punteggio finale, ad es. " LOLCODE (44 - 5 = 39)".
1>viene disegnato in figura). E non c'è ndove nessuna soluzione sia possibile. Una soluzione valida per n=2è 1>2<1<2>.