All Your Base
시간 제한1초메모리 제한128 MB
오른쪽 n번째 자리의 밑이 n+1인 혼합 기수 체계에서 두 수를 읽어 주어진 덧셈이나 뺄셈을 수행하고, 같은 체계로 결과를 출력하거나 Invalid를 출력한다.
문제
개요. 자리마다 밑이 다른 혼합 진법 수 체계가 하나 주어집니다. 이 체계로 적힌 수의 쌍들을 읽어, 각 쌍에 지정된 연산을 수행한 뒤 그 결과를 같은 체계로 출력하세요.
수 체계. 자릿수는 오른쪽에서부터 1, 2, … 로 번호를 매깁니다. 오른쪽에서 번째 자리(자리 )에는 부터 까지의 값이 올 수 있습니다. 자릿값 부터 까지는 숫자 문자로, 이상은 대문자 (=10)부터 (=35)까지로 표기합니다. 자릿값은 ()를 넘을 수 없고 자리 의 값은 이하이므로, 한 수는 최대 35자리까지만 가능하며 그보다 길어야 하는 수는 유효하지 않습니다. 음수는 맨 앞에 - 를 하나 붙입니다. 자체를 뜻하는 한 글자 0 을 제외하면 앞자리에 0이 올 수 없습니다.
연산. 덧셈(+)과 뺄셈(-)은 받아올림·받아내림을 포함하여 보통의 산술과 똑같이 계산합니다.
입력
- 첫 줄에는 수행할 연산의 개수가 10진수로 주어집니다.
- 이어지는 각 줄은 최대 1000바이트이며, 이 체계로 쓴 수 하나, 공백, 연산자 한 글자(
+또는-), 공백, 이 체계로 쓴 또 다른 수, 그리고 줄바꿈(LF)으로 이루어집니다. - 두 피연산자와 그 결과 모두 음수일 수 있습니다.
출력
- 각 연산마다 한 줄씩 출력합니다. 결과를 이 수 체계로 적거나, 유효하지 않으면
Invalid를 출력합니다. - 두 피연산자 중 하나라도 이 체계에서 유효한 수가 아니거나, 연산 결과가 유효한 수가 아니면(예: 35자리를 넘어야 하는 경우)
Invalid를 출력합니다.