Görev arasındaki tam sayıları monte etmek 1
için N
genişlikte bir dikdörtgen içine (giriş olarak verilen) W
ve yüksekliğiH
(aynı zamanda giriş olarak verilen). Tek tek sayılar, 90 derecenin herhangi bir katı ile döndürülebilir, ancak dikdörtgende bitişik bloklar olarak görünmeleri gerekir. Diğer bir deyişle, sayılardan birini birden fazla rakama bölemez ve sayıları ayrı ayrı dikdörtgene yerleştiremezsiniz, bir köşedeki sayının üç basamağını da bükemezsiniz. Her sayıyı bir duvar inşa ettiğiniz bir tuğla olarak düşünebilirsiniz.
İşte bir örnek. Girişinizi söyle (N, W, H) = (12, 5, 3)
. Olası bir çözüm:
18627
21901
53114
Netlik sağlamak için, bu kılavuzun iki kopyası, biri rakamlardan biri gizli, diğeri de rakamlardan iki tanesi gizli:
1#### #8627
2##01 #19##
##11# 53##4
Dikdörtgenin benzersiz bir şekilde tekrar sökülmemesi sorun değil. Örneğin, yukarıdaki örnekte, bu 12
şekilde de yerleştirilmiş olabilir:
##### 18627
21#01 ##9##
##11# 53##4
kurallar
Sen varsayabiliriz N
olumlu olduğunu ve W*H
gelen tamsayılar basamak sayısını maçları 1
için N
kapsayıcı ve sayının içine dikdörtgenin bir döşeme var olduğunu. Şu anda bunun her zaman mümkün olup olmadığına dair bir kanıtım yok, ancak bir taneyle ilgilenirim.
Çıktı, tek satır besleme ayrılmış bir dize veya bir dizi listesi (her satır için bir tane) veya tek basamaklı tam sayıların (her hücre için bir tane) listelerinin bir listesi olabilir.
Gönderiminizin sonuçları belirleyici olmalı ve tüm test durumlarını makul bir masaüstü makinesinde bir dakikadan daha kısa sürede halledebilmelisiniz.
Bir program veya fonksiyon yazabilir ve standart yöntemlerimizden herhangi birini kullanabilirsiniz. girdi alma ve çıktı alma .
Herhangi bir programlama dilini kullanabilirsiniz , ancak bu boşlukların varsayılan olarak yasak olduğunu unutmayın .
Bu kod-golf , yani en kısa geçerli cevap - bayt cinsinden - kazanır.
Test Kılıfları
İlki hariç, bunların hiçbiri benzersiz değil. Her test durumunu N W H
olası bir çıktı izler. Daha büyük sayıları yatay olarak yazmak için dikdörtgenin çok dar olması durumunda cevabınızın çalıştığından emin olun.
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)
mümkün değildir (1'den 1'e kadar olan tüm sayıların N
inşaatta kullanılması gerektiği varsayılarak ). Eğer bu kısıtlama tutulursa, birimin içindeki dikdörtgenin alanı 1..N
mümkün kılmak için en az basamak sayısı olmalıdır . Bu kısıtlama gevşemişse, her durumda mümkündür (ancak zorluk çok da eğlenceli değildir: P)
N
, ancak program bunu genişlik ve yükseklikten hesaplayabilir) ve programın dikdörtgenin bu mücadeleye doğru bir cevap olup olmadığını kontrol etmesi gerekir. ...