가장 가까운 순열 수 찾기

시간 제한1초메모리 제한128 MB

요약
숫자 a와 숫자 b의 모든 자릿수를 이용해, a보다 크거나 같은 가장 작은 재배열과 a보다 작은 가장 큰 재배열을 선행 0 없이 찾는 문제입니다.
난이도

보통10점 중 7점

유형
그리디, 문자열, 조합론
정답자
아직 제출이 없습니다

문제

길이가 같은 두 양의 정수 a와 b가 주어진다. 두 수는 모두 0으로 시작하지 않는다.

b에 들어 있는 각 숫자를 정확히 한 번씩 모두 사용해 길이가 같은 양의 정수를 만들 수 있다. 이때 만든 수 역시 0으로 시작할 수 없다.

가능한 수 중에서 다음 두 값을 찾아라.

  • a보다 크거나 같은 수 중 가장 작은 수
  • a보다 작은 수 중 가장 큰 수

해당하는 수가 없으면 그 자리에 0을 출력한다.

입력

입력은 두 줄이다.

첫째 줄에 a, 둘째 줄에 b가 주어진다. 두 수의 길이는 같은 n이며, 1 <= n <= 60이다.

출력

첫째 줄에 b의 숫자를 모두 사용해 만들 수 있는 수 중 a보다 크거나 같은 가장 작은 수를 출력한다.

둘째 줄에 b의 숫자를 모두 사용해 만들 수 있는 수 중 a보다 작은 가장 큰 수를 출력한다.

각 줄에서 조건을 만족하는 수가 없으면 0을 출력한다.

예제4

  1. 예제 1

    입력
    3075
    6604
    
    예상 출력
    4066
    0
    
  2. 예제 2

    입력
    3000203
    4562454
    
    예상 출력
    4244556
    2655444
    
  3. 예제 3

    입력
    3022
    1232
    
    예상 출력
    3122
    2321
    
  4. 예제 4

    입력
    1232
    3022
    
    예상 출력
    2023
    0