만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

좌석

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

요약
H행 W열 좌석에서 번호가 0부터 k-1까지인 참가자로만 채워진 직사각형 영역의 개수를 교환 요청마다 구합니다.
난이도

어려움10점 중 9점

유형
세그먼트 트리, 배열, 구현
정답자
아직 제출이 없습니다

문제

HH행 WW열의 직사각형 강당에 좌석이 HWHW개 있습니다. 행은 0부터 H−1H-1까지, 열은 0부터 W−1W-1까지 번호가 매겨져 있습니다. rr행 cc열의 좌석은 (r,c)(r, c)로 나타냅니다.

참가자는 HWHW명이며 0부터 HW−1HW-1까지 번호가 붙어 있습니다. 좌석 배치표는 참가자 ii를 좌석 (Ri,Ci)(R_i, C_i)에 배정하고, 각 좌석에는 참가자가 정확히 한 명씩 배정됩니다.

좌석들의 집합 SS가 직사각형이라는 것은 다음 조건을 만족하는 정수 r1r_1, r2r_2, c1c_1, c2c_2가 존재한다는 뜻입니다.

  • 0≤r1≤r2≤H−10 \le r_1 \le r_2 \le H-1
  • 0≤c1≤c2≤W−10 \le c_1 \le c_2 \le W-1
  • SS는 r1≤r≤r2r_1 \le r \le r_2이고 c1≤c≤c2c_1 \le c \le c_2인 모든 좌석 (r,c)(r, c)로만 이루어진다.

직사각형 좌석 집합이 kk개의 좌석으로 이루어져 있고(1≤k≤HW1 \le k \le HW), 그 좌석에 배정된 참가자 번호가 0부터 k−1k-1까지이면 이 집합을 아름다운 집합이라고 합니다. 좌석 배치표의 아름다움은 아름다운 직사각형 좌석 집합의 개수입니다.

교체 요청은 0번부터 Q−1Q-1번까지 순서대로 들어옵니다. jj번째 요청은 참가자 AjA_j와 BjB_j의 좌석을 서로 맞바꾸는 것입니다. 요청이 들어오면 바로 처리해 배치표에 반영하고, 요청을 처리할 때마다 현재 배치표의 아름다움을 구합니다.

제한

  • 1≤H1 \le H
  • 1≤W1 \le W
  • HW≤1,000,000HW \le 1{,}000{,}000
  • 0≤Ri≤H−10 \le R_i \le H-1 (0≤i≤HW−10 \le i \le HW-1)
  • 0≤Ci≤W−10 \le C_i \le W-1 (0≤i≤HW−10 \le i \le HW-1)
  • (Ri,Ci)≠(Rj,Cj)(R_i, C_i) \ne (R_j, C_j) (0≤i<j≤HW−10 \le i < j \le HW-1)
  • 1≤Q≤50,0001 \le Q \le 50{,}000
  • swap_seats를 호출할 때마다 0≤a≤HW−10 \le a \le HW-1
  • swap_seats를 호출할 때마다 0≤b≤HW−10 \le b \le HW-1
  • swap_seats를 호출할 때마다 a≠ba \ne b

예제1

  1. 예제 1

    입력
    1 2
    0 0
    0 1
    1
    0 1
    
    예상 출력
    2