간단한 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$이며, 계산이 끝난 뒤 c는 4가 됩니다.-- 연산자도 같은 방식으로 동작하지만 값을 1 감소시킵니다.수식은 형식적으로 다음과 같이 계산합니다.
++(또는 --)가 앞에 붙은 모든 변수에 대해, 그 변수를 1 증가(또는 감소)시키는 대입문을 기록하고, 변수 앞의 그 연산자를 제거합니다.++(또는 --)가 뒤에 붙은 모든 변수에 대해서도 같은 방식으로 처리합니다.예를 들어 ++a + b++를 계산하는 것은 a = a + 1, result = a + b, b = b + 1을 차례로 계산하는 것과 같습니다.
첫 번째 줄에는 테스트 케이스의 수 $T$가 주어지고, 이어지는 $T$개의 줄에는 각각 하나의 수식이 주어집니다.
수식 안의 공백은 무시합니다. 모든 입력 수식은 모호하지 않습니다(예: a+++b는 나타나지 않습니다). 한 변수에 전위와 후위 단항 연산자가 동시에 붙는 경우는 없습니다(예: ++a++는 나타나지 않습니다). 각 변수는 한 수식에 최대 한 번만 등장한다고 가정해도 됩니다.
각 테스트 케이스마다, 입력에 주어진 수식에서 공백을 제거한 형태를 Expression: 뒤에 이어서 한 줄에 출력합니다. 다음 줄에는 value = 뒤에 수식 전체의 값을 출력합니다.
그 뒤에는 수식에 등장한 각 변수의 최종 값을 <변수> = <값> 형식으로 한 줄에 하나씩, 변수 이름의 알파벳 순서로 출력합니다. 수식에 실제로 등장한 변수만 출력합니다.