만드는 중입니다

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

나무 보드

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

요약
종이를 제거하면 그 종이를 뚫은 못이 떨어지고 연쇄적으로 다른 종이도 떨어지며, 질의마다 종이의 못 개수나 남은 종이 수를 답합니다.
난이도

보통10점 중 6점

유형
그래프, DFS, 구현
정답자
아직 제출이 없습니다

문제

페챠와 바샤는 재미있는 문제를 푸는 것을 매우 좋아한다. 두 사람은 직사각형 보드 하나를 함께 쓴다. 보드는 좌표축과 평행한 변을 가진 직사각형이고, 왼쪽 아래 꼭짓점은 (0,0)(0, 0), 오른쪽 위 꼭짓점은 (W,H)(W, H)이다. 두 사람은 아직 풀지 못한 문제의 조건이 적힌 종이를 보드에 붙인다. 종이는 직사각형이며, 한 점으로 퇴화할 수도 있다. 종이는 회전하지 않도록 고정하는 못에 걸어 붙이고, 변은 항상 좌표축과 평행하게 붙인다. 못은 그 점이 종이의 내부나 경계 위에 있을 때 종이를 붙잡는다.

매 순간 두 사람 중 한 명은 다음 중 하나를 할 수 있다.

  • 종이를 못 하나에 건다. 다른 종이 위에 겹쳐 걸어도 된다. 못은 자신의 점을 내부나 경계에 포함하는 모든 종이를 뚫는다.
  • 번호가 kk인 종이를 보드에서 뗀다. 그 종이를 뚫고 있는 모든 못이 떨어진다. 그 결과 다른 종이도 함께 떨어질 수 있다. 종이 번호는 보드에 걸린 순서대로 1부터 매긴다.
  • 번호가 kk인 종이를 뚫고 있는 못의 개수를 묻는다. 종이가 떨어졌다면 값은 0이다.
  • 보드에 남은 종이의 수를 묻는다.

두 사람의 질문에 답하라.

입력

첫 줄에 보드의 너비와 높이를 나타내는 정수 WW와 HH (5≤W,H≤108)(5 \le W, H \le 10^8)가 주어진다.

둘째 줄에 질의의 수 NN (1≤N≤10000)(1 \le N \le 10000)이 주어진다.

다음 NN개 줄에 네 가지 종류 중 하나의 질의가 한 줄에 하나씩 주어진다.

  • 1 x1 y1 x2 y2 x y: 왼쪽 아래 꼭짓점이 (x1,y1)(x_1, y_1), 오른쪽 위 꼭짓점이 (x2,y2)(x_2, y_2)인 종이를 걸고, 못을 (x,y)(x, y)에 박는다. 0≤x1≤x≤x2≤W0 \le x_1 \le x \le x_2 \le W, 0≤y1≤y≤y2≤H0 \le y_1 \le y \le y_2 \le H이다. 한 점에 못이 여러 개 있을 수 있다.
  • 2 k: 번호가 kk인 종이를 뗀다. 이전에 번호 kk인 종이가 걸린 적이 있음이 보장된다.
  • 3 k: 번호가 kk인 종이를 붙잡고 있는 못의 개수를 묻는다. 이전에 번호 kk인 종이가 걸린 적이 있음이 보장된다.
  • 4: 보드에 남은 종이의 수를 묻는다.

입력의 모든 수는 정수이다.

출력

3번과 4번 종류 질의의 답을 질의 순서대로 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

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

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