130
правок
Изменения
→Псевдокод
'''list<char>''' dir = {←, ... , ←}
'''list<list<int>>''' result
'''while''' (''true)''
result.append(perm); <font color=darkgreen> //добавляем в ответ текущую перестановку</font color=darkgreen>
'''int''' id = -1; <font color=darkgreen> //индекс наибольшего подвижного элемента </font color=darkgreen>
'''for''' (i = 1 '''to''' n)
'''if''' (perm[i] - подвижный) '''and''' ((id == -1) '''or''' (perm[i] > perm[id]))
id = i
'''if''' (id == -1) '''break''' <font color=darkgreen> //не нашли подвижного элемента</font color=darkgreen>
'''for''' (i = 1 '''to''' n){
'''if''' (perm[i] > perm[id])
reverse(dir[i]) <font color=darkgreen> //меняем направление стрелки</font color=darkgreen>