Но как действовать дальше?
Какой-то
рекурсивный алгоритм, где:
1. набираем элементы до суммы S/3 в 1-е множество ...
2. для каждой найденной комбинации п.1 набираем элементы до суммы S/3 в 2-е множество ...
3. смотрим равна ли сумма того, что осталось S/3?
Дерево поиска.
Как вы не мудрите, итоговое решение будет вариантом такого.
Можно придумать что-то из жадных алгоритмов, чтобы сразу не углубляться в рекурсию на всю глубину.
Хорошая задача ...
Но громоздкая, поэтому сюда не помещаю.
Вот вариант решения:
примеры задач при изучении C++$ ./3set
Вводите числа построчно (пустая строка - конец ввода):
1 2 3 4
4 5 8
{ 1, 2, 3, 4, 4, 5, 8 } ->
{ 1, 8 }
{ 4, 5 }
{ 2, 3, 4 }