Hej, postaram się jak najkrócej opisać problem. Zaciekawił mnie i zastanawia mnie jak to rozwiązać. Otóż mamy podany zbiór X (elementy mogą się w nim powtarzać), a my mamy symulować cięcie odcinka na takie fragmenty, że ich sumy długości pojedynczo, potem parami obok siebie, potem trójkami itd. dają razem ten pierwszy zbiór X. Matematyka przy okazji mówi, że z tego powodu X=A(A+1)/2, jeśli chodzi o liczbę elementów. Na pewno brzmi to enigmatycznie, więc wyjaśnię przykładem:
zbiór X = {2, 3, 3, 4, 6, 6, 7, 8, 9, 9, 11, 12, 15, 15, 18}, odpowiedź brzmi (na przykład, bo może ich być więcej, ale wystarczy jedna): (3, 4, 2, 6, 3). Widać, że to dobra odpowiedź, bo utworzymy takie zbiory (dla pojedynczych sum, sum dwójkami, trójkami itd.: {3, 4, 2, 6, 3}, {7, 6, 8, 9}, {9, 12, 11}, {15,15}, {18} (nota bene ostatni element to zawsze długość odcinka).
Dla zbioru X={1, 2, 3} nasza kombinacja będzie dwuelementowa (równanie X=A(A+1)/2) i jest postaci po prostu (1, 2).
No i mam problem, jak zaimplementować takie wyszukiwanie poprawnej kombinacji? Nie chodzi mi o kod, tylko chciałbym wytłumaczenie samego postępowania. Z góry dzięki za pomoc, a w razie pytań i niejasności służę wyjaśnieniami. Liczę, że znajdzie tu się dobry człowiek, który rozumie problem. :D