1196: Bits equalizer
Memory Limit:512 MB
Time Limit:2.000 S
Judge Style:Text Compare
Creator:
Submit:13
Solved:4
Description
주어진 두 개의 비어 있지 않은 문자열 S와 T가 있습니다. S에는 '0', '1' 및 '?' 문자가 포함되어 있고, T에는 '0'과 '1'만 포함되어 있습니다. 여러분의 작업은 최소한의 이동으로 S를 T로 변환하는 것입니다. 각 이동에서 다음 중 하나를 할 수 있습니다:
예를 들어, S = "01??00"이고 T = "001010"인 경우 다음과 같이 3번의 이동으로 S를 T로 변환할 수 있습니다:
이제 S는 T와 같습니다.
- S에서 '0'을 '1'로 변경합니다.
- S에서 '?'를 '0' 또는 '1'로 변경합니다.
- S에서 문자 두 개를 서로 바꿉니다.
예를 들어, S = "01??00"이고 T = "001010"인 경우 다음과 같이 3번의 이동으로 S를 T로 변환할 수 있습니다:
- 초기에 S = "01??00"
- 이동 1 – S[2]를 '1'로 변경합니다. 그러면 S는 "011?00"이 됩니다.
- 이동 2 – S[3]을 '0'으로 변경합니다. 그러면 S는 "011000"이 됩니다.
- 이동 3 – S[1]과 S[4]를 교환합니다. 그러면 S는 "001010"이 됩니다.
이제 S는 T와 같습니다.
Input
입력의 첫 번째 줄은 테스트 케이스의 수를 나타내는 정수 C(C ≤ 200)입니다.
각 케이스는 두 줄로 구성됩니다. 첫 번째 줄은 '0', '1' 및 '?'로 구성된 문자열 S입니다.
두 번째 줄은 '0'과 '1'로 구성된 문자열 T입니다. 문자열의 길이는 100을 초과하지 않습니다.
Output
각 케이스에 대해, 먼저 케이스 번호를 출력한 다음 S를 T로 변환하는 데 필요한 최소 이동 횟수를 출력합니다.
변환할 수 없는 경우 대신 -1을 출력합니다. 정확한 형식에 대한 출력 예시를 확인하세요.
Sample Input Copy
3
01??00
001010
01
10
110001
000000
Sample Output Copy
Case 1: 3
Case 2: 1
Case 3: -1