아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

마스크가 필요해

시간 제한3초메모리 제한1024 MB

요약
각 시민은 [L, R] 범위의 가격만 받아들이고, 각 상점은 가격 P로 마스크 X개를 판매할 때, 최대한 많은 시민에게 마스크를 배정하는 수를 구한다.
난이도

보통10점 중 7점

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

문제

코로나19가 발생한 뒤로 마스크의 필요성이 커지기 시작했다. 마스크가 없으면 생활하기 어렵기 때문에 마스크를 항상 구비해 두어야 한다.

마스크 수요가 늘면서 일정했던 마스크 가격이 상점마다 달라졌다. 가격이 제각각이라 A도시의 시민들이 전부 마스크를 갖기가 어려워지기 시작했다. A도시의 공무원인 당신은 이 사태를 해결하려고 상점 주인들에게 마스크 가격을 일정하게 맞춰 달라고 했지만, 상점 주인들은 당연히 무시했다.

상점 주인들을 설득하기 어렵다고 판단한 당신은 최대한 많은 시민이 마스크를 갖도록 하는 쪽으로 계획을 바꿨다. 당신은 A도시의 각 시민이 마스크에 쓸 수 있는 금액의 범위와, A도시의 상점에서 파는 마스크의 가격 및 개수를 알아냈다. 각 시민은 최대 1개의 마스크만 살 수 있다. 이 정보를 바탕으로 최대한 많은 시민이 마스크를 얻도록 하자.

입력

첫 번째 줄에는 A도시의 시민 수인 NN과 A도시의 상점 수인 MM이 주어진다. (1≤N,M≤500,0001 \le N, M \le 500{,}000)

두 번째 줄부터 N+1N + 1번째 줄까지는 A도시의 각 시민이 마스크에 쓸 수 있는 돈의 범위인 LiL_i, RiR_i가 주어진다. 즉 ii번째 A도시 시민이 살 수 있는 마스크의 가격은 LiL_i 이상 RiR_i 이하이다. (1≤Li≤Ri≤10181 \le L_i \le R_i \le 10^{18})

N+2N + 2번째 줄부터 N+M+1N + M + 1번째 줄까지는 A도시의 각 상점이 파는 마스크의 가격인 PjP_j와 마스크의 개수인 XjX_j가 주어진다. (1≤Pj≤10181 \le P_j \le 10^{18}, 1≤Xj≤1,0001 \le X_j \le 1{,}000)

모든 LiL_i, RiR_i, PjP_j, XjX_j는 정수이다.

출력

가능한 한 많은 시민이 마스크를 샀을 때, 마스크를 산 시민의 수를 출력한다.

예제3

  1. 예제 1

    입력
    5 1
    1 2
    1 3
    1 4
    1 5
    1 6
    1 5
    
    예상 출력
    5
    
  2. 예제 2

    입력
    3 2
    2 5
    7 8
    4 8
    10 5
    6 5
    
    예상 출력
    1
    
  3. 예제 3

    입력
    3 3
    3 5
    10 15
    5 10
    4 1
    5 1
    16 3
    
    예상 출력
    2