Изменения
→Специализация алгоритма для генерации следующего разбиения на подмножества
<code>
'''function''' nextSetPartition(a:list<list<int>>a):list<list<int>>
<font color=green>// <tex>a</tex> {{---}} список, содержащий подмножества</font>
<font color=green>// <tex>used</tex> {{---}} список, в котором мы храним удаленные элементы</font>
used = list<int>()
fl = ''false''
'''for''' i = a.size '''downto''' 1
'''if''' (used.size != 0) and (used[used.size] > a[i][a[i].size]) '''then''' <font color=green>// если можем добавить в конец подмножества элемент из <tex>used</tex></font>
a[i].add(used[used.size]) <font color=green>//добавляем</font>
used.remove(used.size)
'''break'''
'''for''' j = a[i].size '''downto''' 1
'''if''' (used.size != 0) and (j != 1) and (used[used.size] > a[i][j]) '''then''' <font color=green>//если можем заменить элемент, другим элементом из списка <tex>used</tex> </font>
a[i][j] = used[used.size] <font color=green>//заменяем</font>
fl = ''true''