파티용 피자
시간 제한2초메모리 제한1024 MB
전자레인지 하나로 피자 N개를 데울 때, 각 피자는 a_i초 동안 데워야 하고 b_i초 동안 따뜻하게 남습니다. 어떤 순간에 따뜻한 피자 수가 가장 많아지는 가열 순서를 구합니다.
문제
3월이 막 시작됐는데, NUOP(Неизвестный университет олимпиадного программирования, 알 수 없는 올림피아드 프로그래밍 대학교)의 1학년 학생 베냐민은 벌써 시험을 끝냈습니다. 파티를 열 충분한 이유입니다.
베냐민은 날짜와 시간을 정하고 친구들을 모두 초대했으며 피자를 아주 많이 주문했습니다. 그런데 피자가 예정보다 훨씬 일찍 도착했습니다. 친구들이 올 때쯤이면 피자가 식어 있을 것이므로, 다시 데우는 순서를 미리 정해야 합니다. NUOP에서는 스케줄링 이론을 3학년이 되어서야 배우기 때문에 베냐민은 여러분에게 도움을 요청합니다. 문제는 다음과 같습니다.
- 베냐민에게 피자가 개 있습니다.
- 목표는 전자레인지에 피자를 넣는 순서를 정해서, 어떤 한 시점에 뜨거운 피자가 최대한 많아지게 하는 것입니다.
- 번째 피자는 두 값 와 로 주어집니다.
- 는 번째 피자를 전자레인지에서 데우는 데 필요한 시간(초)입니다.
- 는 번째 피자가 뜨거운 상태로 남아 있는 시간(초)입니다.
- 피자가 뜨거워지려면 전자레인지에 정확히 초 동안 끊기지 않고 들어 있어야 합니다.
- 전자레인지는 하나뿐이며, 어느 순간에도 최대 한 개의 피자만 들어갈 수 있습니다.
- 전자레인지 켜기와 끄기, 피자 꺼내기와 넣기는 모두 순간적으로 이루어집니다.
- 피자를 먹는 것도 순간적으로 일어납니다. 목표는 어느 한 순간에 뜨거운 피자를 최대로 만드는 것이며, 그 순간이 0이 아닌 길이의 시간 동안 이어질 필요는 없습니다.
입력
첫 줄에 피자의 개수를 나타내는 정수 이 주어집니다(). 다음 줄에는 각각 정수 와 가 주어집니다().
출력
동시에 뜨거운 상태가 될 수 있는 피자의 최대 개수를 한 줄에 출력합니다.
힌트
첫 번째 테스트를 자세히 살펴봅시다.
- 0초에 베냐민은 첫 번째 피자를 전자레인지에 넣습니다.
- 1초에 베냐민은 첫 번째 피자를 꺼내고 두 번째 피자를 넣습니다.
- 2초에 베냐민은 두 번째 피자를 꺼냅니다. 이 순간 첫 번째 피자는 아직 뜨겁습니다. 따라서 답은 2입니다. 두 피자가 동시에 뜨거운 순간은 이 시점뿐이며, 이 예제에서는 둘 다 0이 아닌 길이의 시간 동안 뜨겁게 유지하는 것이 불가능합니다.