Nhiệm vụ của bạn là tập hợp các số nguyên từ 1
đến N
(được đưa ra làm đầu vào) thành một hình chữ nhật có chiều rộng W
và chiều cao H
(cũng được đưa ra làm đầu vào). Các số riêng lẻ có thể được xoay bởi bất kỳ bội số 90 độ nào, nhưng chúng phải xuất hiện dưới dạng các khối liền kề trong hình chữ nhật. Nghĩa là, bạn không thể chia một trong các số thành nhiều chữ số và đặt các chữ số trong hình chữ nhật riêng lẻ, bạn cũng không thể uốn ba chữ số của một số quanh một góc. Bạn có thể coi mỗi số là một viên gạch mà từ đó bạn đang xây dựng một bức tường.
Đây là một ví dụ. Nói đầu vào của bạn là (N, W, H) = (12, 5, 3)
. Một giải pháp có thể là:
18627
21901
53114
Để rõ ràng, đây là hai bản sao của lưới này, một bản có các số có một chữ số và một bản có các số có hai chữ số được ẩn:
1#### #8627
2##01 #19##
##11# 53##4
Thật tốt nếu hình chữ nhật không thể được tháo rời một lần nữa theo một cách riêng. Ví dụ, trong ví dụ trên, 12
cũng có thể được đặt như thế này:
##### 18627
21#01 ##9##
##11# 53##4
Quy tắc
Bạn có thể cho rằng N
là tích cực và W*H
phù hợp với số chữ số trong số nguyên từ 1
để N
bao gồm, và rằng một ốp lát của hình chữ nhật vào những con số được tồn tại. Tôi hiện không có bằng chứng cho dù điều này luôn luôn có thể, nhưng tôi sẽ quan tâm đến nó nếu bạn làm như vậy.
Đầu ra có thể là một chuỗi được phân tách bằng nguồn cấp dữ liệu đơn hoặc một danh sách các chuỗi (một chuỗi cho mỗi dòng) hoặc danh sách các danh sách các số nguyên một chữ số (một cho mỗi ô).
Kết quả của việc gửi của bạn phải là xác định và bạn sẽ có thể xử lý tất cả các trường hợp thử nghiệm trong vòng chưa đầy một phút trên máy tính để bàn hợp lý.
Bạn có thể viết chương trình hoặc chức năng và sử dụng bất kỳ phương pháp tiêu chuẩn nào để nhận đầu vào và cung cấp đầu ra.
Bạn có thể sử dụng bất kỳ ngôn ngữ lập trình nào , nhưng lưu ý rằng các lỗ hổng này bị cấm theo mặc định.
Đây là môn đánh gôn , vì vậy câu trả lời hợp lệ ngắn nhất - được đo bằng byte - thắng.
Các trường hợp thử nghiệm
Ngoại trừ cái đầu tiên, không cái nào trong số này là duy nhất. Mỗi trường hợp thử nghiệm được N W H
theo sau bởi một đầu ra có thể. Hãy chắc chắn rằng câu trả lời của bạn hoạt động khi hình chữ nhật quá hẹp để viết các số lớn hơn theo chiều ngang.
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)
, điều đó là không thể (giả sử rằng tất cả các số từ 1 đến N
PHẢI được sử dụng trong xây dựng). Nếu ràng buộc đó được giữ, diện tích của hình chữ nhật tính theo đơn vị phải có ít nhất là số chữ số 1..N
để có thể thực hiện được. Nếu sự hạn chế đó được nới lỏng, thì trong mọi trường hợp, điều đó có thể xảy ra (nhưng sau đó thử thách không thú vị lắm: P)
N
, nhưng chương trình có thể tính toán nó từ chiều rộng và chiều cao), và chương trình cần kiểm tra xem hình chữ nhật có phải là câu trả lời cho thách thức này không. ...