만드는 중입니다

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

맥퀸의 너트 결제

시간 제한2초메모리 제한1024 MB

요약
각 물건의 가격이 a_i에서 b_i 사이에 있을 때, 어떤 가격 조합이든 지불할 수 있는 2의 거듭제곱 단위 너트의 최소 총합을 구합니다.
난이도

보통10점 중 6점

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

문제

라이트닝 맥퀸은 경기에서 우승한 뒤 타이어와 여러 부품을 바꾸기로 했다. 가게에 도착해 물건이 너무 많아 놀랐지만, 기분이 좋아져서 트렁크에 쇠붙이 물건을 잔뜩 담았다. 그러던 중 무언가 마음에 걸리기 시작했다. 그 불안은 계산대 줄에 서서야 너트를 집에 두고 왔다는 것을 깨달을 때까지 계속되었다. 카뷰레터 구역의 기본 화폐가 너트이므로 너트가 없으면 물건을 살 수 없다. 맥퀸은 당황하지 않기로 했다. 모든 가격을 외운 뒤 너트를 가지러 집으로 갔다.

집에 도착했을 때 맥퀸은 거의 모든 것을 잊어버린 상태였다. 기억나는 것은 각 가격이 속한 범위뿐이었다. 즉, ii번 부품의 가격은 aia_i개 이상, bib_i개 이하의 너트이다. 카뷰레터 구역의 너트는 2k2^k 단위의 액면가로 있으며, 여기서 k≥0k \ge 0이다.

맥퀸은 주어진 범위 안의 어떤 가격 조합에서도 거스름돈 없이 전체 금액을 치를 수 있도록 가져가야 하는 너트의 최소 개수를 알고 싶어 한다. 맥퀸은 매우 성공한 레이서이므로 각 액면가의 너트는 필요한 만큼 충분히 있다고 본다.

입력

첫 줄에 구매 횟수 nn (1≤n≤1051 \le n \le 10^5)이 주어진다. 이어지는 nn개의 줄에는 정수 aia_i, bib_i (1≤ai≤bi≤1091 \le a_i \le b_i \le 10^9)가 주어진다. 이는 ii번 부품의 가격 범위이다.

출력

주어진 범위 안의 어떤 가격 조합에서도 거스름돈 없이 전체 금액을 치를 수 있도록 가져가야 하는 너트의 최소 개수를 출력한다.

예제1

  1. 예제 1

    입력
    4
    3 5
    7 9
    2 4
    1 10
    
    예상 출력
    5