All Your Base

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

요약
오른쪽 n번째 자리의 밑이 n+1인 혼합 기수 체계에서 두 수를 읽어 주어진 덧셈이나 뺄셈을 수행하고, 같은 체계로 결과를 출력하거나 Invalid를 출력한다.
난이도

보통10점 중 6점

유형
수학, 구현, 문자열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

개요. 자리마다 밑이 다른 혼합 진법 수 체계가 하나 주어집니다. 이 체계로 적힌 수의 쌍들을 읽어, 각 쌍에 지정된 연산을 수행한 뒤 그 결과를 같은 체계로 출력하세요.

수 체계. 자릿수는 오른쪽에서부터 1, 2, … 로 번호를 매깁니다. 오른쪽에서 nn번째 자리(자리 nn)에는 00부터 nn까지의 값이 올 수 있습니다. 자릿값 00부터 99까지는 숫자 문자로, 1010 이상은 대문자 AA(=10)부터 ZZ(=35)까지로 표기합니다. 자릿값은 3535(ZZ)를 넘을 수 없고 자리 nn의 값은 nn 이하이므로, 한 수는 최대 35자리까지만 가능하며 그보다 길어야 하는 수는 유효하지 않습니다. 음수는 맨 앞에 - 를 하나 붙입니다. 00 자체를 뜻하는 한 글자 0 을 제외하면 앞자리에 0이 올 수 없습니다.

연산. 덧셈(+)과 뺄셈(-)은 받아올림·받아내림을 포함하여 보통의 산술과 똑같이 계산합니다.

입력

  • 첫 줄에는 수행할 연산의 개수가 10진수로 주어집니다.
  • 이어지는 각 줄은 최대 1000바이트이며, 이 체계로 쓴 수 하나, 공백, 연산자 한 글자(+ 또는 -), 공백, 이 체계로 쓴 또 다른 수, 그리고 줄바꿈(LF)으로 이루어집니다.
  • 두 피연산자와 그 결과 모두 음수일 수 있습니다.

출력

  • 각 연산마다 한 줄씩 출력합니다. 결과를 이 수 체계로 적거나, 유효하지 않으면 Invalid 를 출력합니다.
  • 두 피연산자 중 하나라도 이 체계에서 유효한 수가 아니거나, 연산 결과가 유효한 수가 아니면(예: 35자리를 넘어야 하는 경우) Invalid 를 출력합니다.

예제4

  1. 예제 1

    입력
    3
    3 + 5
    9987654321 + 1
    -A000000000 - 1
    
    예상 출력
    Invalid
    A000000000
    -A000000001
    
  2. 예제 2

    입력
    5
    1 + 0
    1 + 1
    10 + 10
    10 - 10
    0 - 1
    
    예상 출력
    1
    10
    20
    0
    -1
    
  3. 예제 3

    입력
    5
    01 + 0
    -0 + 0
    30 + 0
    a + 1
    12 + 0
    
    예상 출력
    Invalid
    Invalid
    Invalid
    Invalid
    Invalid
    
  4. 예제 4

    입력
    3
    100 - 1
    9987654321 + 0
    100 + 0
    
    예상 출력
    21
    9987654321
    100