수식 계산기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

간단한 C 스타일 수식을 계산하는 문제입니다. 각 수식은 정수 변수와 제한된 연산자만 포함하며, 숫자 상수는 등장하지 않습니다.

변수는 소문자 a부터 z까지 26개가 있습니다. 수식을 계산하기 전, 각 변수의 초깃값은 a = 1, b = 2, ..., z = 26 입니다.

이항 연산자 +-(덧셈과 뺄셈)는 일반적인 의미로 사용됩니다. 예를 들어 수식 a + c - d + b의 값은 $1 + 3 - 4 + 2 = 2$ 입니다.

단항 연산자 ++--도 사용할 수 있습니다. 이 연산자는 변수 바로 (전위)이나 바로 (후위)에 올 수 있습니다.

  • ++가 변수 에 오면, 그 변수의 값은 수식 계산에 사용되기 전에 1 증가합니다. 따라서 ++c - b의 값은 $4 - 2 = 2$ 입니다.
  • ++가 변수 에 오면, 그 변수의 값은 수식 계산에 사용된 후에 1 증가합니다. 따라서 c++ - b의 값은 $3 - 2 = 1$이며, 계산이 끝난 뒤 c4가 됩니다.
  • -- 연산자도 같은 방식으로 동작하지만 값을 1 감소시킵니다.

수식은 형식적으로 다음과 같이 계산합니다.

  1. ++(또는 --)가 앞에 붙은 모든 변수에 대해, 그 변수를 1 증가(또는 감소)시키는 대입문을 기록하고, 변수 앞의 그 연산자를 제거합니다.
  2. ++(또는 --)가 뒤에 붙은 모든 변수에 대해서도 같은 방식으로 처리합니다.
  3. 이제 단항 연산자가 남아 있지 않으므로, 남은 수식을 계산하는 문장을 기록합니다.
  4. 1단계의 문장들을 먼저 실행하고, 그다음 3단계의 문장을, 마지막으로 2단계의 문장들을 실행합니다.

예를 들어 ++a + b++를 계산하는 것은 a = a + 1, result = a + b, b = b + 1을 차례로 계산하는 것과 같습니다.

입력

첫 번째 줄에는 테스트 케이스의 수 $T$가 주어지고, 이어지는 $T$개의 줄에는 각각 하나의 수식이 주어집니다.

수식 안의 공백은 무시합니다. 모든 입력 수식은 모호하지 않습니다(예: a+++b는 나타나지 않습니다). 한 변수에 전위와 후위 단항 연산자가 동시에 붙는 경우는 없습니다(예: ++a++는 나타나지 않습니다). 각 변수는 한 수식에 최대 한 번만 등장한다고 가정해도 됩니다.

출력

각 테스트 케이스마다, 입력에 주어진 수식에서 공백을 제거한 형태를 Expression: 뒤에 이어서 한 줄에 출력합니다. 다음 줄에는 value = 뒤에 수식 전체의 값을 출력합니다.

그 뒤에는 수식에 등장한 각 변수의 최종 값을 <변수> = <값> 형식으로 한 줄에 하나씩, 변수 이름의 알파벳 순서로 출력합니다. 수식에 실제로 등장한 변수만 출력합니다.