39
правок
Изменения
→Реализация
===Реализация===
'''list<int>''' PreviousSetPartition('''list<int>''' a)
'''for''' int i = a.size - 1 '''todownto''' 0 <font color = green> // найдем минимальный элемент, от которого можно отнять 1</font>
'''if''' a[i] > 1
a[i] --
'''else''' a.push_back(1)
'''else''' int sum = 1 <font color = green> // пройдемся до конца массива и найдем сумму оставшихся элементов </font>
'''whilefor''' j = i < + 1 '''to''' a.size - 1 i++ sum += a[ij]
'''while''' a[a.size] != a[0] <font color = green> // удалим все элементы кроме 1, чтобы заполнить теми, что не превышают a[0] </font>
a.pop_back
'''while''' sum > ba[10]
sum -= a[0]
a.push(a[0])