S를 T로

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

문제

길이가 같은 두 문자열 $S$와 $T$가 주어집니다. $S$는 0, 1, ?로 이루어져 있고, $T$는 0, 1로 이루어져 있습니다. $S$를 $T$로 바꾸는 데 필요한 연산 횟수의 최솟값을 구하세요.

사용할 수 있는 연산은 다음과 같습니다.

  1. $S$의 01로 바꾸기;
  2. $S$의 ?0이나 1로 바꾸기;
  3. $S$의 두 위치에 있는 문자의 자리를 서로 바꾸기.

예를 들어 $S$가 01??00이고 $T$가 001010이면 세 번의 연산으로 바꿀 수 있습니다.

  • 시작: 01??00;
  • 3번째 문자(?)를 1로 바꾼다: 011?00;
  • 4번째 문자(?)를 0으로 바꾼다: 011000;
  • 2번째와 5번째 문자의 자리를 바꾼다: 001010.

입력

첫째 줄에 테스트 케이스의 개수 $C$ ($C \le 200$)가 주어집니다. 각 테스트 케이스는 두 줄로 이루어집니다. 첫째 줄에는 0, 1, ?로 이루어진 $S$가, 둘째 줄에는 0, 1로 이루어진 $T$가 주어집니다. 두 문자열의 길이는 같고 $100$을 넘지 않으며, 빈 문자열이 아닙니다.

출력

각 테스트 케이스마다 Case x: r 형식으로 한 줄에 출력합니다. 여기서 x는 테스트 케이스 번호(1부터 시작)이고 r은 $S$를 $T$로 바꾸는 데 필요한 연산 횟수의 최솟값입니다. $S$를 $T$로 바꿀 수 없다면 r-1을 출력합니다.