Ihre Aufgabe ist es, die Ganzzahlen von 1
bis N
(als Eingabe angegeben) zu einem Rechteck aus Breite W
und Höhe H
(auch als Eingabe angegeben) zusammenzusetzen. Einzelne Zahlen können um ein Vielfaches von 90 Grad gedreht werden, sie müssen jedoch als zusammenhängende Blöcke im Rechteck erscheinen. Das heißt, Sie können eine der Zahlen nicht in mehrere Ziffern aufteilen und die Ziffern einzeln im Rechteck platzieren. Sie können auch nicht drei Ziffern einer Zahl um eine Ecke biegen. Sie könnten jede Zahl als Baustein betrachten, aus dem Sie eine Mauer bauen.
Hier ist ein Beispiel. Sagen Sie, Ihre Eingabe ist (N, W, H) = (12, 5, 3)
. Eine mögliche Lösung ist:
18627
21901
53114
Der Übersichtlichkeit halber sind hier zwei Kopien dieses Rasters aufgeführt, eine mit ausgeblendeten einstelligen Zahlen und eine mit ausgeblendeten zweistelligen Zahlen:
1#### #8627
2##01 #19##
##11# 53##4
Es ist in Ordnung, wenn das Rechteck nicht auf einzigartige Weise wieder zerlegt werden kann. Im obigen Beispiel 12
könnte das beispielsweise auch so platziert werden:
##### 18627
21#01 ##9##
##11# 53##4
Regeln
Sie können davon ausgehen, dass dies N
positiv ist und W*H
mit der Anzahl der Ziffern in den ganzen Zahlen von 1
bis N
einschließlich übereinstimmt , und dass eine Aufteilung des Rechtecks in die angegebenen Zahlen vorhanden ist. Ich habe derzeit keinen Beweis, ob dies immer möglich ist, aber ich wäre an einem interessiert, wenn Sie dies tun.
Die Ausgabe kann entweder eine einzelne durch Zeilenvorschub getrennte Zeichenfolge oder eine Liste von Zeichenfolgen (eine für jede Zeile) oder eine Liste von Listen mit einstelligen Ganzzahlen (eine für jede Zelle) sein.
Die Ergebnisse Ihrer Einreichung müssen eindeutig sein und Sie sollten in der Lage sein, alle Testfälle in weniger als einer Minute auf einem vernünftigen Desktop-Computer zu bearbeiten.
Sie können ein Programm oder eine Funktion schreiben und eine unserer Standardmethoden zum Empfangen und Bereitstellen von Eingaben verwenden.
Sie können jede Programmiersprache verwenden , aber beachten Sie, dass diese Lücken standardmäßig verboten sind.
Das ist Code-Golf , also gewinnt die kürzeste gültige Antwort - gemessen in Bytes .
Testfälle
Bis auf die erste ist keine davon einzigartig. Jedem Testfall N W H
folgt eine mögliche Ausgabe. Stellen Sie sicher, dass Ihre Antwort funktioniert, wenn das Rechteck zu schmal ist, um die größeren Zahlen horizontal zu schreiben.
1 1 1
1
6 6 1
536142
6 2 3
16
25
34
10 1 11
1
0
8
9
2
6
7
3
1
5
4
11 13 1
1234567891011
27 9 5
213112117
192422581
144136119
082512671
205263272
183 21 21
183116214112099785736
182516114011998775635
181116013911897765534
180415913811796755433
179115813711695745332
178315713611594735231
177115613511493725130
176215513411392715029
175115413311291704928
174115313211190694827
173115213111089684726
172015113010988674625
171915012910887664524
170814912810786654423
169714812710685644322
168614712610584634221
167514612510483624120
166414512410382614019
165314412310281603918
164214312210180593817
163114212110079583716
200 41 12
81711132917193661114105533118936111184136
50592924448815915414562967609909953662491
89529721161671582389717813151113658811817
41418184511110119010183423720433017331118
35171183614003547461181197275184300111711
41874381132041861871718311415915921116264
11914245014112711011594492626831219331845
17125112629222085166344707736090956375181
94507611291431121128817413566319161275711
11011540021119913511011169939551729880780
92725141607727665632702567369893534277304
78118311405621148296417218591118562161856
(10, 1, 1)
ist dies nicht möglich (vorausgesetzt, dass alle Zahlen von 1 bis N
MÜSSEN in der Konstruktion verwendet werden). Wenn diese Einschränkung eingehalten wird, muss der Bereich des Rechtecks in Einheiten mindestens die Anzahl der Stellen 1..N
betragen, um dies zu ermöglichen. Wenn diese Einschränkung gelockert ist, ist es in allen Fällen möglich (aber dann macht die Herausforderung nicht viel Spaß: P)
N
, aber das Programm könnte sie aus der Breite und Höhe berechnen), und das Programm muss prüfen, ob das Rechteck eine gültige Antwort auf diese Herausforderung ist. ...