Trong thử thách này, bạn được thông qua hai điều:
- Độ dài chuỗi,
N
- Một danh sách các chuỗi,
L
mỗi chuỗi có một giá trị điểm được gán. Bất kỳ chuỗi nào không được truyền vào đều có giá trị điểm là 0
Bạn cần xây dựng một chuỗi độ dài N
sao cho tổng của tất cả các điểm của chuỗi con càng lớn càng tốt.
Ví dụ:
5 [("ABC", 3), ("DEF", 4), ("CDG", 2)]
nên đầu ra
ABCDG
Bởi vì hai chuỗi con có điểm ( ABC
và CDG
) có tổng cộng 5 điểm và không có cấu trúc nào khác có thể cho 5 điểm trở lên.
Các lớp nền có thể được sử dụng nhiều lần trong một chuỗi và có thể chồng lên nhau. Bạn có thể giả định rằng các điểm sẽ luôn dương, độ dài chuỗi con sẽ nằm trong khoảng từ 1 đến các N
ký tự và điều đó N > 0
. Nếu nhiều công trình là tối đa, hãy in bất kỳ một trong số chúng.
Chương trình của bạn phải chạy trong một khoảng thời gian hợp lý (không quá một phút cho mỗi ví dụ):
1 [("A", 7), ("B", 4), ("C", 100)] => C
2 [("A", 2), ("B", 3), ("AB", 2)] => AB
2 [("A", 1), ("B", 2), ("CD", 3)] => BB
2 [("AD", 1), ("B", 2), ("ZB", 3)] => ZB
3 [("AB", 2), ("BC", 1), ("CA", 3)] => CAB
3 [("ABC", 4), ("DEF", 4), ("E", 1)] => DEF
4 [("A", 1), ("BAB", 2), ("ABCD", 3)] => AAAA or ABAB or BABA or ABCD
5 [("A", 1), ("BAB", 2), ("ABCD", 3)] => BABCD or BABAB
5 [("ABC", 3), ("DEF", 4), ("CDG", 2)] => ABCDG
5 [("AB", 10), ("BC", 2), ("CA", 2)] => ABCAB
6 [("AB", 10), ("BC", 2), ("CA", 2)] => ABABAB
8 [("AA", 3), ("BA", 5)] => BAAAAAAA
10 [("ABCDE", 19), ("ACEBD", 18), ("ABEDC", 17), ("BCEDA", 16), ("EBDAC", 15), ("BACD", 14), ("CADB", 13), ("ABDC", 12), ("CABD", 11), ("EBDC", 10), ("ACE", 9), ("CBA", 8), ("AEC", 7), ("BE", 6), ("AE", 5), ("DC", 4), ("BA", 3), ("A", 2), ("D", 1)]
=> ACEBDACEBD
Đây là một môn đánh gôn , vì vậy hãy chuẩn bị câu trả lời ngắn nhất bằng ngôn ngữ yêu thích của bạn!
DEF
tuple thiếu dấu phẩy