Дано число n - кол-во перестановок
2 списка - b, f: b - список видов цифр, f - кол-во повторений этих цифр
Вывести все виды перестановок (повторяться нельзя)
!!!Без nextpermitation, только библиотека iostream + без функций
artyom7777, Не понял ваш вопрос.
Самый простой способ - генерировать следующую лексикографически перестановку.
Кажется, есть способы менять местами только 2 соседних элемента и все-равно получить все перестановки без повторений. Обобщение этого метода на перестановки с повторениями мне неизвестны. Возможно, оно даже существует, но будет сильно сложнее предложенного мной алгоритма.
artyom7777, Я так и не понял, какой код вы хотели.
Если вам надо перестановки вывести, то только сам вывод будет работать за O(n*n!). Алгоритм Нарайаны имеет такую же сложность. Т.е. он не медленнее вывода. Даже если вы найдете какой-то супер-пупер квантовый нереально быстрый алгоритм генерации перестановок, в лучшем случае вы ускорите вашу программу в 2-3 раза.