91
правка
Изменения
→Специализация алгоритма для генерации следующего разбиения на подмножества
// a - матрица, содержащая подмножества
// used - массив, в котором мы храним удаленные элементы
fl = true '''for''' i = n - 1 '''downto''' 0
'''if''' можем добавить в конец подмножества элемент из used
добавляем
'''break'''
'''for''' j = a[i].size () - 1 '''downto''' 0
'''if''' можем заменить элемент, другим элементом из массива used
заменяем
fl = true
'''break'''
used.add(a[i][j]) //удаляем элемент и добавляем его в массив
'''if''' (fl) break
//далее выведем все получившиеся подмножества
sort(used); '''for''' i = 0 '''to''' used.size() - 1 '''println(used[i])''' //выводим лексикографически минимальных хвост
</code>