Задачи за тренинг

Задача 4а.
Дадено е цяло положително n-цифрено число. С размяна на различни цифри на числото получаваме друго число, което е или по-малко, или по-голямо от даденото. Да се намери най-малкото n-цифрено число, което може да се получи чрез размяна на произволен брой цифри на даденото число.

Вход:
Задава се редица от числа, по-малки от 10100.

Изход:

За всяко число от редицата, на отделен ред се отпечатва най-малкото n-цифрено число, получено по описания начин.

Пример:
100 283

Решение на примера:
100
238


Задача 4b.
Дадено се множество от n различни цели числа  числа. Да се напише програма, която да може да отговаря на въпроса: "Кой е k-тия по големина елемент на множеството?"

Вход:
Най-напред на входа се задава броя N на елементите на множеството (N < 1011) . Следват самите елементи (по-малки от 1020) и след тях редица от цели положителни числа "k" - питане за k-тия по големина елемент на множеството (k < 100), която съдържа не повече от 100 питания.

Изход:
За всяко питане, на изхода се отпечатва на отделен ред отговора - стойността на k-тия по големина елемент.

Пример:
5
12 4 22 31 32
1 2 3 4


Решение на примера:
32
31
22
12

Подсказка: Може да използвате контейнерът set от STL да съхранявате там 100-те най-големи елементи на множеството. Когато четете от входа елемент, слагате го в множеството и ако то стане с повече от 100 елемента, изтривате най-малкия. След прочитането на входа, в множаството ще имате 100-те най-големи елемента, и то наредени.