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

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

낭만적인 영화 나들이

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

요약
거대한 극장 좌석의 점유 상태가 계속 바뀌는 가운데 두 좌석의 시야 불편도 합을 묻는 질의에 답하고, 마지막에는 먼 미점유 좌석 두 개의 최소 불편도 합을 구한다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 동적 계획법, 누적 합, 구현
정답자
아직 제출이 없습니다

문제

브라이언은 애나테브카와 함께 영화관에 간다. 이 영화관에는 10001000개의 좌석으로 이루어진 행이 10910^9개 있으며, 처음에는 모든 좌석이 비어 있다. 행은 스크린에서 가장 가까운 행부터 1…1091 \dots 10^9로 번호가 매겨져 있고, 각 행의 좌석은 왼쪽부터 오른쪽으로 1…10001 \dots 1000번으로 번호가 매겨져 있다. rr행의 cc번째 좌석을 (r,c)(r, c)로 나타낸다. 1…L1 \dots L행(1≤L≤10001 \le L \le 1000)의 좌석은 스크린에 가까운 좌석이고, 그보다 뒤쪽 행의 좌석은 먼 좌석이다.

영화가 시작되기 전 TT분(1≤T≤5000001 \le T \le 500000) 동안 여러 사건이 일어난다. ii번째 분에는 문자 EiE_i와 두 정수 Ri,CiR_i, C_i로 표현되는 다음 세 가지 중 정확히 하나가 일어난다.

  • Ei=E_i = E: 어떤 사람이 들어와 비어 있는 좌석 (Ri,Ci)(R_i, C_i)에 앉는다.
  • Ei=E_i = L: 차 있는 좌석 (Ri,Ci)(R_i, C_i)에 앉아 있던 사람이 떠난다.
  • Ei=E_i = S: 애나테브카가 좌석 (Ri,Ci)(R_i, C_i)와 (Ri,Ci+1)(R_i, C_i + 1)을 제안한다.

사건에 등장하는 모든 좌석은 유효한 좌석이며, 애나테브카가 제안하는 좌석은 항상 가까운 좌석이다(즉 S 사건에서는 Ri≤LR_i \le L).

좌석 (r,c)(r, c)의 시야는, (1,c)(1, c)까지의 맨해튼 거리가 (r,c)(r, c)의 그것보다 크지 않은 모든 좌석의 집합이다. 두 점 (x1,y1)(x_1, y_1)과 (x2,y2)(x_2, y_2) 사이의 맨해튼 거리는 ∣x1−x2∣+∣y1−y2∣|x_1 - x_2| + |y_1 - y_2|이다. (1,c)(1, c)에서 (r,c)(r, c)까지의 거리는 r−1r - 1이므로, 좌석 (x,y)(x, y)가 (r,c)(r, c)의 시야에 들어오는 것은 (x−1)+∣y−c∣≤r−1(x - 1) + |y - c| \le r - 1, 즉 x+∣y−c∣≤rx + |y - c| \le r일 때이며, 자기 자신은 제외한다.

시야

좌석 (r,c)(r, c)의 불편도는 그 시야 안에 있는(자기 자신은 세지 않는) 차 있는 좌석의 수이다.

제안(S)이 있을 때마다 브라이언은 그것을 평가한다. 제안된 두 좌석 중 하나라도 이미 차 있으면 그 제안은 무효이다. 그렇지 않으면 제안의 질은 제안된 두 좌석의 불편도의 합이다.

모든 사건이 끝난 뒤 브라이언이 최종 선택을 한다. 그는 먼 빈 좌석을 선호하며, 두 좌석이 서로 인접할 필요는 없다. 서로 다른 두 개의 먼 빈 좌석의 불편도 합의 최솟값을 구하여라. 선택한 한 좌석이 다른 좌석의 시야에 들어오더라도 그것은 불편도에 더해지지 않는다. 불편도는 오직 영화관에 앉아 있는 다른 사람들에 의해서만 정해진다.

입력

첫째 줄에 두 정수 LL과 TT가 주어진다(1≤L≤10001 \le L \le 1000, 1≤T≤5000001 \le T \le 500000).

다음 TT개의 줄에는 각각 문자 EiE_i(Ei∈{E_i \in \{ E, L, S }\})와 두 정수 RiR_i, CiC_i가 주어진다(1≤Ri≤1091 \le R_i \le 10^9, 1≤Ci≤10001 \le C_i \le 1000), i=1…Ti = 1 \dots T. S 사건에서는 두 번째 좌석 (Ri,Ci+1)(R_i, C_i + 1)도 유효해야 하므로 Ci≤999C_i \le 999이다.

출력

각 제안(S 사건)에 대해 입력에 주어진 순서대로, 제안이 무효이면(두 좌석 중 하나 이상이 차 있으면) No를, 그렇지 않으면 제안된 두 좌석의 불편도 합을 출력한다.

마지막으로 한 줄에, 서로 다른 두 개의 먼 빈 좌석 쌍의 불편도 합의 최솟값을 출력한다.

예제2

  1. 예제 1

    입력
    3 7
    E 1 2
    E 2 5
    S 3 4
    E 2 3
    L 2 5
    S 1 3
    S 2 2
    
    예상 출력
    3
    0
    No
    0
    
  2. 예제 2

    입력
    4 9
    E 1 4
    E 2 4
    E 1 5
    S 4 4
    S 4 3
    L 2 4
    S 4 4
    E 3 6
    S 4 6
    
    예상 출력
    6
    6
    4
    6
    0