Лексикографічно найменші букви завжди можна вставити в рядок (на будь-яку позицію) за допомогою описаної операції.
Об'єднаємо рядки та . Нехай 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)])