두 문자열
시간 제한2초메모리 제한512 MB
두 숫자 문자열 s와 t가 주어질 때, 앞이 0이 아닌 s의 순환 이동으로 만들 수 있는 수에서 같은 조건의 t의 순환 이동으로 만든 수를 뺀 값의 최댓값을 구한다.
문제
문자열 을 칸 순환 시프트한 문자열을 로 정의한다. 예를 들어 문자열 «abcde»를 두 칸 순환 시프트한 문자열은 «cdeab»이다. 이 문제에서는 앞으로 0부터 9까지의 십진 숫자로만 이루어진 문자열만 다룬다. 이런 문자열 중 첫 문자가 0이 아닌 문자열에는 그것을 십진 표기로 하는 수를 대응시킬 수 있다. 0으로 시작하는 문자열에는 어떤 수도 대응시키지 않는다. 예를 들어 문자열 123에는 수 백이십삼이 대응되고, 문자열 0123에는 어떤 수도 대응되지 않는다.
두 문자열 와 가 주어진다. 를 문자열 의 모든 순환 시프트의 집합, 를 문자열 의 모든 순환 시프트의 집합이라 하자. 예를 들어 = «1234»이면 는 문자열 «1234», «2341», «3412», «4123»을 포함한다. 를 집합 의 문자열에 대응되는 수의 집합이라 하자.
문자열 와 가 주어졌을 때 (단, 는 의 원소, 는 의 원소)의 꼴로 나타낼 수 있는 수 중 최댓값을 구하는 프로그램을 작성하라.
예를 들어 = «25», = «12»이면 는 수 25와 52를, 는 수 12와 21을 포함한다. 이들의 모든 쌍별 차이는 , , , 이다. 이 차이 중 최댓값은 40이다.
입력
입력 파일의 첫째 줄에는 문자열 , 둘째 줄에는 문자열 가 주어진다. 두 문자열은 비어 있지 않고 숫자로만 이루어져 있으며, 적어도 하나의 숫자는 0이 아니고, 길이는 3000자를 넘지 않는다.
출력
구한 수를 앞에 불필요한 0 없이 출력 파일에 출력한다.