Ý tưởng cảm ơn @ MartinBüttner từ một cuộc thảo luận trong trò chuyện
Mahjong là một trò chơi xếp gạch rất phổ biến ở châu Á. Nó thường được chơi với bốn người chơi và mục tiêu của trò chơi là trở thành người đầu tiên hoàn thành một ván bài hợp lệ bằng cách sử dụng các ô. Đối với thử thách này, chúng tôi sẽ xem xét một phiên bản đơn giản hóa của trò chơi - mạt chược PPCG.
Trong PPCG mạt chược, có ba bộ quần áo - m
, p
và s
- và gạch được đánh số từ 1
đến 9
. Có chính xác bốn bản của mỗi ngói và gạch được biểu thị bằng số của nó tiếp theo phù hợp với nó (ví dụ 3m
, 9s
).
Một tay chơi mạt chược PPCG hoàn thành bao gồm bốn bộ ba và một cặp, với tổng số 14 gạch.
Một bộ ba có thể là:
- Ba của cùng một lát (ví dụ
4s 4s 4s
, nhưng không4m 4p 4s
), hoặc - Một chuỗi ba gạch liên tiếp trong cùng một bộ đồ (ví dụ
1s 2s 3s
hoặc6p 7p 8p
không3s 4m 5m
hoặc3p 5p 7p
). Trình tự không bọc (vì vậy9m 1m 2m
là không hợp lệ).
Một cặp chỉ đơn giản là hai gạch giống nhau (ví dụ 5s 5s
).
Các thách thức
Chương trình của bạn sẽ nhận được một bàn tay cách nhau 13 ô, với mỗi ô xuất hiện không quá bốn lần. Bạn có thể viết một chương trình đầy đủ hoặc một hàm có trong một chuỗi.
Nhiệm vụ của bạn là tìm tất cả các ô thứ 14 có thể ("chờ"), khi được thêm vào tay, sẽ tạo thành một bàn tay mạt chược PPCG hoàn chỉnh. Các gạch đầu ra phải được phân tách không gian, nhưng có thể theo bất kỳ thứ tự nào. Khoảng trắng hàng đầu hoặc dấu được cho phép.
Chương trình của bạn nên chạy trong một khoảng thời gian hợp lý, không quá một phút.
Ví dụ
Input: 1m 1m 1m 4s 4s 4s 7p 7p 7p 3m 3m 3m 9s
Output: 9s
Input: 1m 1m 1m 3m 3m 3m 5m 5m 5m 2s 3s 7p 8p
Output:
Input: 1m 2m 2m 3m 3m 3m 3m 4m 1s 1s 9s 9s 9s
Output: 1s
Input: 1m 1m 1m 2m 3m 4m 5m 6m 7m 8m 9m 9m 9m
Output: 1m 2m 3m 4m 5m 6m 7m 8m 9m
Input: 1m 1m 1m 5p 2m 3m 5p 7s 8s 5p 9s 9s 9s
Output: 1m 4m 6s 9s
Trong ví dụ đầu tiên, 1m 4s 7p 3m
tất cả các hình thức bộ ba hiện có, để lại đơn độc 9s
để tạo thành một cặp.
Trong ví dụ thứ hai, các 2s 3s
và 7p 8p
chỉ có thể tạo thành các chuỗi và các ô còn lại chỉ có thể tạo thành các bộ ba. Do đó không có cặp nào có thể được hình thành, và không có đầu ra.
Trong ví dụ thứ ba, bàn tay tách ra 1m2m3m 2m3m4m 3m3m 1s1s 9s9s9s
. Thông thường, điều này sẽ là chờ đợi 3m 1s
, nhưng vì cả bốn 3m
đã được sử dụng, nên chờ đợi duy nhất là có sẵn 1s
.
Trong ví dụ thứ tư, tất cả các m
gạch hoàn thành bàn tay. Ví dụ, đối với 1m
, người ta có thể có 1m1m1m 1m2m3m 4m5m6m 7m8m9m 9m9m
một bàn tay hoàn thành.
Cố gắng tìm ra phần còn lại của ví dụ thứ tư và ví dụ thứ năm :)
Chấm điểm
Đây là môn đánh gôn , vì vậy giải pháp trong vài byte nhất sẽ thắng. Tiêu chuẩn áp dụng.