4287 - 연습 3.3 축약형을 풀어 쓰기

Time Limit: 1s Memory Limit: 128MB

Submissions: 1324 Solved: 315
Description

반복되는 패턴이 있을 때, 사람은 이를 줄여서 쓰고 싶어하는 습성이 있습니다. 하지만 컴퓨터는 이를 받아들이기 곤란할 때가 많습니다.

단순한 컴퓨터가 이해할 수 있도록 다음의 규칙을 가지는 축약형을 풀어봅시다.

규칙 1. 연속되는 문자에 대해 "시작문자-끝문자" 형태로 축약한다.

규칙 2. 알파뱃 소문자, 알파뱃, 대문자, 숫자에 대해서만 축약한다.

규칙 3. 시작문자와 끝문자는 동일할 수 있다.

규칙 4. 시작문자와 끝문자가 다를 경우, 오름차순의 형태를 가져야한다.

Input

* 입력 문장 S (최대 길이 : 1,000 바이트)

    - EOF 로 종료

Output

* 변환된 문장 S

Sample Input
UPPER ALPHABET A-Z
lower alphabet a-z
number 0-9
single 0-0
not expandable -----
not expandable 9-0
double expand A-Za-z
special case ---0-00-0-
Sample Output
UPPER ALPHABET ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower alphabet abcdefghijklmnopqrstuvwxyz
number 0123456789
single 0
not expandable -----
not expandable 9-0
double expand ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
special case ---00-
Hint

0-4-7 이 입력으로 들어오면 01234-7 으로 변환됩니다. (thx to pichulia)

규칙 5. 시작문자와 끝문자의 종류(소문자, 대문자, 숫자)는 동일해야 한다.