원형 우리에 덮개 씌우기
면접 대비시간 제한1초메모리 제한128 MB
둘레가 C인 원 위에 시작 위치와 길이가 주어진 여러 호가 있을 때, 원 전체를 덮는 데 필요한 최소 호의 개수를 구한다.
문제
소들이 부끄러움을 많이 타서, 자신들이 이따금 모이는 원형 우리 둘레에 덮개를 둘러 주기를 바란다. 우리의 둘레 길이는 이다(). 농부 John은 개()의 덮개 중에서 고를 수 있으며, 각 덮개는 시작 위치와 길이가 고정되어 있다. 이 덮개들을 적절히 고르면 우리 전체를 두를 수 있음이 보장된다.
번 덮개는 정수 위치 ()에 설치할 수 있다. 여기서 는 우리 위의 고정된 기준점에서 시계 방향으로 잰 거리이다. 덮개의 길이는 정수 ()이며, 에서 시작해 시계 방향으로 만큼 이어지는 연속된 호를 덮는다. 기준점을 지나면 우리를 한 바퀴 돌아 이어진다.
농부 John은 설치하는 덮개의 수를 최소로 하고 싶다. 우리의 둘레 전체를 덮는 데 필요한 덮개의 최소 개수를 구하여라.
둘레가 인 우리를 생각하자. 아래 그림에서 두 개의 0은 우리 위의 같은 점을 나타낸다(1, 2, 3도 마찬가지이다). 사용할 수 있는 덮개는 세 개이다.
Start Length
i x_i l_i
1 0 1
2 1 2
3 3 3
0 1 2 3 4 0 1 2 3 ...
corral: +---+---+---+---+--:+---+---+---+- ...
11111 1111
22222222 22222222
333333333333
|..................|
번과 번 덮개를 설치하면 둘레의 다섯 칸을 모두 덮을 수 있다. 덮개끼리 겹쳐도 문제가 없으므로 겹침은 신경 쓰지 않아도 된다.
입력
- 첫째 줄에 두 정수 와 이 공백으로 구분되어 주어진다.
- 다음 개의 줄 중 번째 줄에는 번 덮개를 나타내는 두 정수 와 가 공백으로 구분되어 주어진다.
출력
- 우리의 둘레 전체를 덮는 데 필요한 덮개의 최소 개수를 정수 하나로 출력한다.