숫자는 그냥 문자가 아니다

면접 대비

시간 제한2초메모리 제한512 MB

요약
각 파일 이름을 문자와 숫자 항목으로 나누어 s0과 비교하고 s0보다 앞에 오면 "-", 아니면 "+"를 출력합니다.
난이도

보통10점 중 4점

유형
문자열, 정렬, 구현
정답자
아직 제출이 없습니다

문제

Manuel Majorana Minore 씨는 이름에 숫자가 들어간 파일을 여러 개 만들었다. 그는 이 파일들의 목록을 정리하려고 하지만, 흔히 쓰는 파일 목록 명령은 그가 원하는 순서와 다른 순서로 파일을 나열한다. 그 명령은 파일 이름 속 숫자열을 수가 아니라 ASCII 코드열로 해석한다. 예를 들어 file10, file20, file3은 이런 순서로 나열된다.

숫자열을 수로 해석해 파일 이름의 순서를 정하는 프로그램을 작성하라.

각 파일 이름은 대문자(‘A’부터 ‘Z’), 소문자(‘a’부터 ‘z’), 숫자(‘0’부터 ‘9’)로 이루어진다.

파일 이름은 항목의 나열로 본다. 각 항목은 문자이거나 수이다. 대문자나 소문자 한 글자는 각각 문자 항목이 된다. 숫자가 연속된 구간은 각각 수 항목이 된다.

두 항목의 순서는 다음과 같다.

  • 수 항목은 문자 항목보다 앞선다.
  • 두 문자 항목은 ASCII 코드로 순서를 정한다.
  • 두 수 항목은 십진수로 해석한 값으로 순서를 정한다.

두 파일 이름은 처음부터 항목을 하나씩 비교하며, 처음으로 다른 항목의 순서가 두 파일 이름의 순서를 정한다. 한쪽 A의 항목이 다른 쪽 B보다 많고 B의 항목이 모두 A의 대응하는 항목과 같다면, B가 앞선다.

예를 들어 Sample Input 1의 세 파일 이름 file10, file20, file3은 모두 문자 항목 f, i, l, e 네 개가 같은 순서로 나온 뒤 각각 수 항목 10, 20, 3이 온다. 이 수 항목의 값을 비교하면 file3 < file10 < file20 순서가 된다.

입력

입력은 다음과 같은 형식의 테스트 케이스 하나로 이루어진다.

n
s0
s1
.
.
.
sn

첫 줄의 정수 n은 다음 줄에 주어지는 파일 이름(s0)과 비교할 파일 이름(s1부터 sn)의 개수이다. 여기서 n은 1 ≤ n ≤ 1000을 만족한다.

이어지는 n + 1개 줄에는 파일 이름 s0부터 sn이 한 줄에 하나씩 주어진다. 파일 이름은 길이가 1 이상 9 이하이다. 각 문자는 대문자, 소문자, 숫자 중 하나이다.

파일 이름 속 숫자열은 0으로 시작하지 않는다.

출력

파일 이름 s1부터 sn 각각에 대해, s0보다 앞에 와야 하는지 나타내는 문자를 한 줄에 하나씩 출력한다. s0보다 앞에 나열되어야 하면 “-”를, 그렇지 않으면 두 이름이 같은 경우를 포함해 “+”를 출력한다.

예제2

  1. 예제 1

    입력
    2
    file10
    file20
    file3
    
    예상 출력
    +
    -
    
  2. 예제 2

    입력
    11
    X52Y
    X
    X5
    X52
    X52Y
    X52Y6
    32
    ABC
    XYZ
    x51y
    X8Y
    X222
    
    예상 출력
    -
    -
    -
    +
    +
    -
    -
    +
    +
    -
    +