Twoim zadaniem jest złożenie liczb całkowitych od 1
do N
(podanych jako dane wejściowe) w prostokącie o szerokości W
i wysokości H
(podanych również jako dane wejściowe). Poszczególne liczby mogą być obracane o dowolną wielokrotność 90 stopni, ale muszą pojawiać się jako ciągłe bloki w prostokącie. Oznacza to, że nie można podzielić jednej liczby na wiele cyfr i osobno umieścić cyfr w prostokącie, nie można też zgiąć trzech cyfr liczby za rogiem. Możesz rozważyć każdą liczbę jako cegłę, z której budujesz ścianę.
Oto przykład. Powiedz, że twój wkład to (N, W, H) = (12, 5, 3)
. Jednym z możliwych rozwiązań jest:
18627
21901
53114
Dla jasności, oto dwie kopie tej siatki, jedna z ukrytymi jednocyfrowymi liczbami i jedna z ukrytymi dwucyfrowymi liczbami:
1#### #8627
2##01 #19##
##11# 53##4
W porządku, jeśli prostokąta nie można ponownie zdemontować w unikalny sposób. Na przykład w powyższym przykładzie 12
można również umieścić tak:
##### 18627
21#01 ##9##
##11# 53##4
Zasady
Możesz założyć, że N
jest dodatnia i W*H
odpowiada liczbie cyfr w liczbach całkowitych od 1
do N
włącznie oraz, że istnieje wstawienie prostokąta do podanych liczb. Obecnie nie mam dowodu, czy jest to zawsze możliwe, ale byłbym zainteresowany jednym z nich, jeśli tak.
Dane wyjściowe mogą być albo ciągiem oddzielonym pojedynczym wierszem, albo listą ciągów (po jednym dla każdej linii) lub listą liczb całkowitych o wartości jednocyfrowej (po jednym dla każdej komórki).
Wyniki przesłania muszą być ustalone i powinieneś być w stanie obsłużyć wszystkie przypadki testowe w mniej niż minutę na rozsądnej maszynie stacjonarnej.
Możesz napisać program lub funkcję i użyć dowolnej z naszych standardowych metod otrzymywania danych wejściowych i dostarczania danych wyjściowych.
Możesz używać dowolnego języka programowania , ale pamiętaj, że te luki są domyślnie zabronione.
To jest golf golfowy , więc wygrywa najkrótsza ważna odpowiedź - mierzona w bajtach .
Przypadki testowe
Z wyjątkiem pierwszego, żaden z nich nie jest wyjątkowy. Po każdym przypadku testowym N W H
następuje możliwe wyjście. Upewnij się, że twoja odpowiedź działa, gdy prostokąt jest zbyt wąski, aby pisać większe liczby w poziomie.
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)
nie jest to możliwe (przy założeniu, że wszystkie liczby od 1 do N
MUSZĄ być użyte w konstrukcji). Jeśli to ograniczenie zostanie utrzymane, obszar prostokąta w jednostkach musi być co najmniej liczbą cyfr 1..N
, aby było to możliwe. Jeśli to ograniczenie jest złagodzone, jest to możliwe we wszystkich przypadkach (ale wtedy wyzwanie nie jest zbyt zabawne: P)
N
, ale program może obliczyć to na podstawie szerokości i wysokości), a program musi sprawdzić, czy prostokąt jest wartościową odpowiedzią na to wyzwanie. ...