SG Corp.는 수천 명의 고객을 둔 대형 철강 회사입니다. 모든 고객을 만족시키는 것은 경영진인 Paul과 Art의 최우선 목표입니다.
각 고객은 두 정수로 표현되는 주문을 넣습니다. q는 필요한 철강의 양(톤)이고, d는 납기(달력상의 날짜를 초로 환산한 값)입니다. SG Corp.가 주문을 수락하면 해당 철강을 납기 이전에 반드시 완성해야 합니다. 공장은 한 번에 최대 하나의 주문만 처리할 수 있습니다.
생산 라인의 처리량은 일정합니다. 철강 q톤을 생산하는 데에는 정확히 q초가 걸립니다. 공장은 월간 생산 계획으로 운영됩니다. 매달이 시작되기 전에 모든 주문을 모아 Paul과 Art가 어떤 주문을 수락하고 어떤 주문을 거절할지 정한 뒤, 수락한 주문들의 일정을 세웁니다. 고객을 만족시키기 위해 두 사람은 거절하는 주문의 수를 최소화하려 하며, 이는 곧 수락하는 주문의 수를 최대화하는 것과 같습니다. 계획의 시작(그 달의 첫날)을 시각 0으로 둡니다.
여러분의 과제는 수락할 수 있는 주문의 최대 개수를 구하는 것입니다.
예로 든 풀이. 다음 6개의 주문 J1,…,J6을 생각해 봅시다. qj는 필요한 철강의 양, dj는 납기입니다.
| 주문 | qj | dj |
|---|---|---|
| J1 | 6 | 8 |
| J2 | 4 | 9 |
| J3 | 7 | 15 |
| J4 | 8 | 20 |
| J5 | 3 | 21 |
| J6 | 5 | 22 |
모든 주문을 수락할 수는 없으며, 최소 두 개는 거절해야 합니다. 한 가지 최적해는 J1과 J4를 거절하고 나머지 네 개를 수락하여 빈틈없이 이어서 처리하는 것입니다.
| 수락한 주문 | 시작 시각 | 완료 시각 |
|---|---|---|
| J2 | 0 | 4 |
| J3 | 4 | 11 |
| J5 | 11 | 14 |
| J6 | 14 | 19 |
생산 라인은 한순간도 멈추지 않고, 수락한 모든 주문이 납기 안에 끝나므로 수락된 주문은 4개입니다.
첫째 줄에 주문의 개수 n이 주어집니다 (1≤n≤800000).
이어지는 n개의 줄에는 각 주문이 두 정수로 주어집니다. 필요한 철강의 양 q (1≤q<1000)와 납기 d (1≤d<2×106)이며, 단위는 위와 같습니다.
수락할 수 있는 주문의 최대 개수를 정수 하나로 출력합니다.