Это очень похоже на суммы подмножеств, на которые я недавно отвечал: Алгоритм суммы подмножеств
Единственное, что вам нужно сделать, это отследить, какая карта использовалась для получения от possible[i]
до possible[i+n]
. Вы можете отслеживать их, используя второй массив, назовем его card_used
и затем установите card_used[i+n]
в качестве ссылки / индекса карты, используемой для получения от i
до i+n
. Затем, в конце, вы можете получить список карт, используемых для получения суммы 15 (при условии, что possible[15]
верно), вернувшись по списку card_used
.