Mit nur druckbare ASCII (hex - Codes 20 bis 7e), schreibt , ein quadratisches NxN - Kernprogramm ohne Kommentare , die von 4 weiteren umgeben Schichten , die Schaffung eines (N + 8) × (N + 8) quadratisches Programm (n> 0) . Für N = 3 sieht das Layout (durch den tatsächlichen Code zu ersetzen) folgendermaßen aus:
44444444444
43333333334
43222222234
43211111234
4321CCC1234
4321CCC1234
4321CCC1234
43211111234
43222222234
43333333334
44444444444
- Die Cs repräsentieren das 3 × 3-Kernprogramm.
- Die 1en repräsentieren die erste Schicht, die 2en repräsentieren die zweite Schicht usw.
Das Programm verwendet immer eine Reihe von durch Leerzeichen getrennten Ganzzahlen, wie z. B. 0 -1 31 -1 2 2 2
stdin oder ähnliches (es sollten nur die einfachen Zahlen, keine Anführungszeichen oder Klammern oder ähnliches sein). Die Ausgabe hängt davon ab, welche Teile des Layouts ausgeführt wurden.
Es gibt fünf Möglichkeiten, das Programm auszuführen (Zeilenumbrüche sind im Programm enthalten). Jeder macht etwas anderes mit der Liste:
Führe nur den Kern aus:
CCC CCC CCC
Dadurch wird das Maximum der Absolutwerte der Eingabelistenelemente berechnet und so
CORE
oft in eine neue Zeile gedruckt . Wenn das Maximum 0 ist, wird nichts ausgegeben (ein Zeilenumbruch ist in Ordnung).Die Ausgabe für
0 -1 31 -1 2 2 2
wäreCORE CORE ...
31 mal.
Führe den Core mit Layer 1 aus:
11111 1CCC1 1CCC1 1CCC1 11111
Dies gibt den Durchschnitt ( arithmetisches Mittel ) der Listenwerte mit Standard-Gleitkommagenauigkeit aus.
- Die Ausgabe für
0 -1 31 -1 2 2 2
wäre 35/7 =5
(5.0
ist in Ordnung).
- Die Ausgabe für
Führen Sie den Kern mit den Schichten 1 und 2 aus:
2222222 2111112 21CCC12 21CCC12 21CCC12 2111112 2222222
Dies gibt eine durch Leerzeichen getrennte Liste der Eingabeliste in umgekehrter Reihenfolge aus.
- Die Ausgabe für
0 -1 31 -1 2 2 2
wäre2 2 2 -1 31 -1 0
.
- Die Ausgabe für
Führen Sie den Kern mit den Schichten 1, 2 und 3 aus (das Muster sollte offensichtlich sein).
Dies gibt eine durch Leerzeichen getrennte Liste der sortierten Eingabeliste aus.- Die Ausgabe für
0 -1 31 -1 2 2 2
wäre-1 -1 0 2 2 2 31
.
- Die Ausgabe für
Führen Sie den Core mit den Ebenen 1, 2, 3 und 4 aus.
Dadurch wird eine durch Leerzeichen getrennte Liste der Eingabeliste mit entfernten Duplikaten ausgegeben, die Reihenfolge spielt keine Rolle.- Die Ausgabe für
0 -1 31 -1 2 2 2
könnte sein-1 0 2 31
.
- Die Ausgabe für
Alle Ausgaben erfolgen auf Standardausgabe oder eine ähnliche Alternative.
Nur diese 5 Layoutkombinationen haben ein bestimmtes Verhalten.
Anmerkungen
- Kommentare im Kern oder in Schichten oder Kombinationen davon sind nicht zulässig . Code, der ein No-Op ist oder nichts Konstruktives tut, zählt nicht als Kommentar.
- Denken Sie daran, dass der Kern beliebige (positive) N × N-Dimensionen haben kann, die Schichten jedoch nur ein Zeichen dick sind.
- Sie können davon ausgehen, dass die Eingabe keine führenden oder nachfolgenden Leerzeichen und genau ein Leerzeichen zwischen Zahlen enthält. Es wird immer mindestens eine Zahl enthalten. (Die Ausgabelisten sollten auch so formatiert sein.)
- Sie können davon ausgehen, dass die Liste und die für die Ausgabe erforderlichen Berechnungen keine Werte enthalten, die Ihre ganzen Zahlen über- oder unterschreiten (sofern deren Maximalwert etwa 2 16 beträgt ).
Wertung
Normalerweise wäre es einfach, dieses Programm zu schreiben. Es ist schwer, es mit einem kleinen Kern zu schreiben.
Das Programm mit der kleinsten Kerngröße (das kleinste N) gewinnt. Bei Gleichstand gewinnt das vollständige Programm (das Quadrat (N + 8) × (N + 8)) mit den wenigsten unterschiedlichen Zeichen (ohne Zeilenvorschub).
Bitte geben Sie Ihren N-Wert oben in Ihrer Antwort an.