축사 배정

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

요약
각 축사의 수용량과 구간 요청이 주어질 때, 어떤 축사도 수용량을 넘지 않도록 승인할 수 있는 요청의 최대 개수를 구한다.
난이도

어려움10점 중 8점

유형
그리디, 세그먼트 트리, 정렬, 구간
정답자
아직 제출이 없습니다

문제

농부 존(Farmer John)이 새 축사를 열고, 소들에게서 칸 배정 요청을 받고 있습니다. 어떤 칸은 목초지 전망이 더 좋기 때문에 소들이 특정 구간을 원하기 때문입니다.

축사에는 11번부터 NN번까지 번호가 매겨진 칸이 있습니다(1≤N≤1000001 \le N \le 100000). ii번 칸은 동시에 최대 CiC_i마리의 소를 수용할 수 있습니다(1≤Ci≤1000001 \le C_i \le 100000). 각 소는 자유롭게 돌아다닐 연속된 칸 구간 [Ai,Bi][A_i, B_i]를 요청합니다(1≤Ai≤Bi≤N1 \le A_i \le B_i \le N). 이 요청을 들어주려면, 그 소가 돌아다니는 동안 구간 Ai…BiA_i \dots B_i에 속한 모든 칸에 그 소를 받아들일 여유 용량이 항상 있어야 합니다.

총 MM개의 요청이 주어집니다(1≤M≤1000001 \le M \le 100000). 어떤 요청을 들어주면, 그 소는 자신의 구간에 속한 모든 칸에서 동시에 용량 11을 차지합니다. 어떤 칸의 용량도 초과되지 않도록 하면서, 동시에 들어줄 수 있는 요청의 최대 개수를 구하세요.

예를 들어, 칸이 55개이고 아래와 같은 용량과 요청을 가진 축사를 생각해 봅시다.

Stall id:    1   2   3   4   5
           +---+---+---+---+---+
Capacity:  | 1 | 3 | 2 | 1 | 3 |
           +---+---+---+---+---+
Cow 1       XXXXXXXXXXX             (1, 3)
Cow 2           XXXXXXXXXXXXXXX     (2, 5)
Cow 3           XXXXXXX             (2, 3)
Cow 4                   XXXXXXX     (4, 5)

네 요청을 모두 들어줄 수는 없습니다. 33번과 44번 칸의 용량을 넘기기 때문입니다. 하지만 11번, 33번, 44번 소의 요청은 어떤 칸의 용량도 초과하지 않고 동시에 모두 들어줄 수 있으므로, 이 경우의 최대 개수는 33입니다.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 MM.
  • 22번째 줄부터 N+1N+1번째 줄까지: i+1i+1번째 줄에는 ii번 칸의 용량인 정수 CiC_i가 하나 주어집니다.
  • N+2N+2번째 줄부터 N+M+1N+M+1번째 줄까지: i+N+1i+N+1번째 줄에는 ii번 소가 요청한 구간을 나타내는 두 정수 AiA_i와 BiB_i가 주어집니다.

출력

  • 들어줄 수 있는 요청의 최대 개수를 한 줄에 출력합니다.

예제1

  1. 예제 1

    입력
    5 4
    1
    3
    2
    1
    3
    1 3
    2 5
    2 3
    4 5
    
    예상 출력
    3