만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Exact Change

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

요약
두 이진수 a와 b(최대 100만 비트)가 주어질 때, a부터 b까지의 모든 금액을 정확히 지불할 수 있는 2의 거듭제곱 동전의 최소 개수를 구합니다.
난이도

보통10점 중 7점

유형
수학, 그리디, 비트 연산
정답자
아직 제출이 없습니다

문제

Binaria에 있는 동안, 친구들에게 줄 선물을 사고 싶은 가게를 발견했습니다. Binaria의 화폐 단위는 bit이며, 동전의 액면가는 22의 정수 거듭제곱 전부입니다. 이곳에서 적어도 aa bit을 쓰고, bb bit을 넘지 않게 쓰려고 합니다.

물건을 살 때는 정확한 금액을 내야 합니다. 은행 계좌에서 bit을 원하는 만큼 인출할 수 있지만, 어떤 액면가로 인출할지는 직접 고를 수 있습니다. 동전을 많이 들고 다니는 것은 불편하므로, 가지고 다니는 동전의 개수를 최소로 하려고 합니다.

aa 이상 bb 이하의 모든 정수 금액을 지불할 수 있도록 가져가야 하는 동전의 최소 개수를 구하세요.

입력

첫째 줄에 정수 aa가 주어집니다. 1≤a<210000001 \le a < 2^{1000000}입니다. aa는 앞에 0이 없는 2진수로 주어집니다.

둘째 줄에 정수 bb가 주어집니다. a≤b<21000000a \le b < 2^{1000000}입니다. bb는 앞에 0이 없는 2진수로 주어집니다.

출력

가져가야 하는 동전의 최소 개수 kk를 출력하세요.

예제2

  1. 예제 1

    입력
    10101
    101010
    
    예상 출력
    6
    
  2. 예제 2

    입력
    100
    101
    
    예상 출력
    2