Мінімальний рядок#11092

Мінімальний рядок (Розбір)

Лексикографічно найменші букви завжди можна вставити в рядок (на будь-яку позицію) за допомогою описаної операції.

Об'єднаємо рядки та . Нехай s = a + b. Відсортуємо букви рядка за зростанням. Лексикографічно найменші букви опиняться на початку рядка . Якщо рядок містить букв, то паролем буде префікс рядка довжини .

Реалізація алгоритму

Читаємо вхідні рядки та .

cin >> a;
cin >> b;

Об'єднуємо рядки та і сортуємо результуючий рядок.

s = a + b;
sort(s.begin(), s.end());

Виводимо відповідь — префікс рядка довжини a.size().

cout << s.substr(0, a.size());

Python реалізація

Читаємо вхідні рядки та .

a = input()
b = input()

Об'єднуємо рядки та .

s = a + b

Сортуємо рядок .

s = ''.join(sorted(s))

Виводимо відповідь — префікс рядка довжини .

print(s[:len(a)])