시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 40 7 7 31.818%

문제

세준이는 어떤 문자열의 부분 문자열을 뒤집는 연산을 할 수 있다. r(i,j)는 어떤 문자열의 I번부터 j번 문자열 까지를 뒤집는 연산이다. (0번부터 시작한다.)

어떤 문자열 A를 B로 바꾸는데 사용할 수 있는 연산은 r(i,j)만 있는데, 이 연산을 사용한 순서대로 나타낸 걸 뒤집기 수열이라고 한다.

뒤집기 수열은 다음 조건을 만족해야 한다. 뒤집기 수열이 다음과 같이 길이가 m이고 수열의 각 원소가 첫 번째 부터 r(i1,j1), r(i2,j2), ... r(im,jm) 이라면, i1<=i2<=...<=im이고, j1>=j2>=...>=jm인 조건을 만족해야 한다.

문자열 A와 B가 주어졌을 때, A를 B로 바꾸기 위한 뒤집기 연산의 최소 회수를 출력하는 프로그램을 작성하시오.

예를 들어 A = 1100이고, B=0110이면, r(0,2)를 이용하면 0110을 만들 수 있다.

입력

첫째 줄에 문자열 A와 둘째 줄에 문자열 B가 주어진다. 문자열은 0과 1로만 이루어져 있고, 최대 50글자이다.

출력

첫째 줄에 최소 회수를 출력한다. 만약 바꿀 수 없으면 -1을 출력한다.

예제 입력

1100
0110

예제 출력

1

힌트

출처

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: lmn1349