맥퀸의 너트 결제
시간 제한2초메모리 제한1024 MB
각 물건의 가격이 a_i에서 b_i 사이에 있을 때, 어떤 가격 조합이든 지불할 수 있는 2의 거듭제곱 단위 너트의 최소 총합을 구합니다.
문제
라이트닝 맥퀸은 경기에서 우승한 뒤 타이어와 여러 부품을 바꾸기로 했다. 가게에 도착해 물건이 너무 많아 놀랐지만, 기분이 좋아져서 트렁크에 쇠붙이 물건을 잔뜩 담았다. 그러던 중 무언가 마음에 걸리기 시작했다. 그 불안은 계산대 줄에 서서야 너트를 집에 두고 왔다는 것을 깨달을 때까지 계속되었다. 카뷰레터 구역의 기본 화폐가 너트이므로 너트가 없으면 물건을 살 수 없다. 맥퀸은 당황하지 않기로 했다. 모든 가격을 외운 뒤 너트를 가지러 집으로 갔다.
집에 도착했을 때 맥퀸은 거의 모든 것을 잊어버린 상태였다. 기억나는 것은 각 가격이 속한 범위뿐이었다. 즉, 번 부품의 가격은 개 이상, 개 이하의 너트이다. 카뷰레터 구역의 너트는 단위의 액면가로 있으며, 여기서 이다.
맥퀸은 주어진 범위 안의 어떤 가격 조합에서도 거스름돈 없이 전체 금액을 치를 수 있도록 가져가야 하는 너트의 최소 개수를 알고 싶어 한다. 맥퀸은 매우 성공한 레이서이므로 각 액면가의 너트는 필요한 만큼 충분히 있다고 본다.
입력
첫 줄에 구매 횟수 ()이 주어진다. 이어지는 개의 줄에는 정수 , ()가 주어진다. 이는 번 부품의 가격 범위이다.
출력
주어진 범위 안의 어떤 가격 조합에서도 거스름돈 없이 전체 금액을 치를 수 있도록 가져가야 하는 너트의 최소 개수를 출력한다.