Poker có phép xã giao trong cách bạn sắp xếp chip của mình, thường được thi hành trong các giải đấu - chip của bạn có thể không bị "ẩn" khỏi đối thủ bằng cách đứng sau những người khác, chủ yếu là không che giấu một số chip có mệnh giá lớn.
Các thách thức
Chúng tôi sẽ chơi bài xì phé trong ASCII, vì vậy chúng tôi cần viết một hàm hoặc chương trình sẽ vẽ sắp xếp ngăn xếp chip ASCII với tổng giá trị của nó , n
.
Đầu vào
- Một số nguyên dương, n
( 2**32-1
cần xử lý tối đa)
Đầu ra
- Một đại diện ASCII của sắp xếp ngăn xếp như được định nghĩa dưới đây.
Điều này có thể chứa khoảng trắng ở bên phải của mỗi dòng sao cho không có dòng nào dài hơn một ký tự so với độ dài được sử dụng bởi các ký tự có thể in trong dòng dài nhất (dưới cùng);
Điều này có thể chứa một dòng mới duy nhất; và
Các ký tự đại diện cho chip có thể được viết thường nếu bạn thích.
Sắp xếp ngăn xếp sẽ:
- Chứa ít chip nhất có thể, với các mệnh giá (xem bên dưới);
- Sẽ có các chip có giá trị bằng nhau trong "ngăn xếp" (cột);
- Được ra lệnh sao cho các ngăn xếp ngắn hơn ở bên phải của các ngăn xếp cao hơn; và
- Được yêu cầu sao cho các ngăn xếp có chip có mệnh giá lớn hơn sẽ ở bên phải các ngăn có kích thước bằng nhau có mệnh giá thấp hơn (thể hiện rằng chúng có thể nhìn thấy đối thủ của chúng ta ở bên phải)
Các chip phải được thể hiện dưới dạng các ký tự riêng lẻ xác định màu của chúng:
White : 1 = W
Red : 5 = R
Green : 25 = G
Black : 100 = B
Yellow : 500 = Y
Pink : 1K = P
Orange : 5K = O
Cyan : 25K = C
Magenta : 100K = M
Aqua-blue : 500K = A
Lavender : 1M = L
Indigo : 5M = I
Turquoise : 25M = T
Violet : 100M = V
Silver : 500M = S
Thí dụ
Đối với n = 276,352
số lượng chip nhỏ nhất sẽ là:
2 * 100K + 3 * 25K + 1 * 1K + 3 * 100 + 2 * 25 + 2 * 1
MM CCC P BBB GG WW
Các đơn P
phải đi vào góc xa bên phải,
sau đó ba ngăn xếp kích thước 2
phải đi tới,
- nhưng MM
phải đi xa nhất bên phải tiếp theo là GG
và sau đó là WW
kể từ 100K > 25 > 1
sau đó hai ngăn xếp kích thước 3
đi ở bên trái,
- nhưng CCC
phải đi bên phải BBB
từ25K > 100
Bây giờ chúng ta phải đặt các chip này vào ngăn xếp thực tế, để tạo đầu ra:
BC
BCWGM
BCWGMP
Các trường hợp thử nghiệm
Input:
1
Output:
W
Input:
9378278
Output:
L
LWGPCM
LWGPCMB
LWGPCMBI
Input:
22222222
Output:
ROI
ROI
ROIWBPML
ROIWBPML
Input:
1342185143
Output:
WRCIV
WRCIVOLS
WRCIVOLSGBMT
Input:
2147483647
Output:
RMIS
RMISPC
RMISPCWL
RMISPCWLGBYOTV
Input:
4294967295
Output:
S
S
S
S
SRML
SRMLGOIT
SRMLGOITBPCV
SRMLGOITBPCVA
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte thắng. Không có sơ hở, yada yada, bạn biết khoan.
2**31-1
, hay ý định của bạn lớn hơn hầu hết các int
loại đã ký ?
2**32-1
là một trường hợp thử nghiệm, nhưng tôi sẵn sàng hạ thấp nó. (Sự thật thú vị: PokerStars có một 25B
con chip trong thư mục hình ảnh của họ.)