Rise and Fall
시간 제한1초메모리 제한1024 MB
아주 긴 십진수 문자열이 주어질 때, 앞부분은 감소하지 않고 뒷부분은 증가하지 않도록 나눌 수 있는 수 중 주어진 수 이하인 가장 큰 수를 구한다.
문제
어떤 수의 십진수 표현을 두 부분(빈 부분이어도 된다)으로 나눌 수 있고, 첫 번째 부분의 자릿수가 비감소 순서이고 두 번째 부분의 자릿수가 비증가 순서이면 그 수를 Rise and Fall하다고 한다.
입력으로 주어진 수 이하이면서 Rise and Fall한 수 중 가장 큰 수를 구하라.
입력
첫째 줄에는 정수 ()가 주어지며, 이는 테스트 케이스의 수이다.
다음 개의 줄에는 각각 정수 ()이 주어진다. 각 줄이 하나의 테스트 케이스이다.
- 참고: 오타가 아니다. 정수는 최대 자리일 수 있다.
모든 입력 테스트 케이스의 길이의 합은 을 넘지 않는다.
출력
각 테스트 케이스마다, 해당 테스트 케이스의 이하이면서 Rise and Fall한 수 중 가장 큰 수를 한 줄에 하나씩 출력한다.