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

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

좌석 배정

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

요약
빈 좌석 p개가 연속된 가장 낮은 위치에 손님을 앉히고 구간 퇴장을 처리하면서, 자리 못 잡은 일행 수를 센다.
난이도

보통10점 중 7점

유형
세그먼트 트리, 이분 탐색, 배열, 그리디
정답자
아직 제출이 없습니다

문제

소들이 용돈을 벌기 위해 헛간에서 밀크셰이크 전문 식당을 열었습니다. 식당에는 한 줄로 놓인 좌석 NN개가 있으며(1≤N≤5000001 \le N \le 500000), 하루가 시작될 때 모두 비어 있습니다.

하루 동안 식당에서는 MM개의 사건이 순서대로 일어납니다(1≤M≤3000001 \le M \le 300000). 각 사건은 다음 두 종류 중 하나입니다.

  1. 크기가 pp인 손님 무리가 도착합니다(1≤p≤N1 \le p \le N). 베시는 이 무리 전체를 연속된 빈 좌석 pp개로 이루어진 구간에 앉히려고 합니다. 가능하다면 그렇게 배정할 수 있는 번호가 가장 작은 위치에 앉힙니다. 불가능하다면 그 무리는 돌려보냅니다.
  2. 구간 [a,b][a, b]가 주어지며(1≤a≤b≤N1 \le a \le b \le N), 그 범위의 좌석에 앉아 있던 손님이 모두 떠납니다(해당 좌석이 모두 비워집니다).

하루 동안 돌려보낸 무리의 수를 세어 출력하세요.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 NN과 MM.
  • 다음 MM개의 줄: 각 줄은 하나의 사건을 나타냅니다. A p는 크기가 pp인 무리가 도착했다는 뜻이고, L a b는 좌석 구간 [a,b][a, b]의 손님이 모두 떠난다는 뜻입니다.

출력

  • 첫째 줄: 돌려보낸 무리의 수.

노트

다음은 첫 번째 예제에 대한 설명입니다. 좌석은 10개, 사건은 4개입니다. 먼저 크기 6인 무리가 도착해 좌석 1–6에 앉습니다. 이어서 좌석 2–4의 손님이 모두 떠납니다. 그다음 크기 5인 무리가 도착하지만, 연속된 빈 좌석 5개를 만들 수 없어 돌려보냅니다. 마지막으로 크기 2인 무리가 도착해 비어 있는 좌석 2–3에 앉습니다. 따라서 돌려보낸 무리는 세 번째 무리 하나뿐입니다.

예제3

  1. 예제 1

    입력
    10 4
    A 6
    L 2 4
    A 5
    A 2
    
    예상 출력
    1
    
  2. 예제 2

    입력
    10 3
    A 3
    A 3
    A 4
    
    예상 출력
    0
    
  3. 예제 3

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