Показать сообщение отдельно
Старый 19.01.2012, 11:29   #29
bormotan
Оператор ЭВМ
 
Регистрация: 12.10.2011
Адрес: Воронеж
Сообщений: 46
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Олимпиада по программированию

задачи чуть ли не из класса простейших бактерий. кроме 4 задачи в шапке темы. я её недопонял.
то есть если у меня число n=1243 , то нужно переставить цифру так чтобы оно было больше n , но минимальным из всех таких ( которые больше n ) чисел , которые можно составить из этого набора цифр ???? я вас правильно понял ??

если так , то вот нетрудный алгоритм , число ...a..b.. - буква , это цифра (при перестановке только двух цифр) ищем две цифры максимально близкие к концу , чтобы b>a, и переставляем их . если несколько цифр ( число ..a..b..c..d..) переставить , то ищем a<d , ищем перестановку , этих цифр дающую чуть большее значение из всех возможных (например dbca) . расставляем на исходные позиции цифры ..d..b..c..a..

простите что не в виде кода , а в словесном алгоритме. Сейчас мне влом перегонять в код

Последний раз редактировалось bormotan, 19.01.2012 в 17:57.
(Offline)
 
Ответить с цитированием