문자열 변환

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

문제

좋은 문자열은 다음과 같이 정의한다.

  1. ab는 좋은 문자열이다.
  2. 문자열 SS가 좋은 문자열이면, 앞과 뒤에 각각 ab를 붙인 aSbaSb도 좋은 문자열이다.
  3. 문자열 SSTT가 좋은 문자열이면, 이어 붙인 STST도 좋은 문자열이다.

좋은 문자열 AABB가 주어진다. 인접한 두 문자를 서로 바꾸는 연산만 써서 AABB로 바꾸려고 한다. 바꾸는 도중에 나타나는 문자열도 모두 좋은 문자열이어야 한다. 필요한 연산의 최소 횟수를 구하는 프로그램을 작성하시오.

예를 들어 AAaabbabab이고 BBaaaabbbb이면 다섯 번의 연산으로 AABB로 바꿀 수 있다. 대괄호는 그 단계에서 서로 바꾸는 두 문자이다.

aabba[ba]b → aab[ba]abb → aaba[ba]bb → aa[ba]abbb → aaa[ba]bbb → aaaabbbb

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다.

이어서 각 테스트 케이스마다 한 줄에 문자열 AABB가 공백으로 구분되어 주어진다. AABB는 좋은 문자열이고, 길이는 각각 2 이상 100,000 이하이다.

출력

각 테스트 케이스마다 AABB로 바꾸는 데 필요한 연산의 최소 횟수를 한 줄에 하나씩 출력한다. 바꿀 수 없으면 -1을 출력한다.