안정적인 구조

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

요약
각 행과 열에 빛이 하나씩 있고 감소하는 세 쌍이 없는 안정적 배치 중, 추가된 접두 최댓값 조건을 만족하는 개수를 삽입과 삭제가 있는 쿼리에서 센다.
난이도

어려움10점 중 9점

유형
조합론, 동적 계획법, 세그먼트 트리, 수학
정답자
아직 제출이 없습니다

문제

도시와 의식이 자리를 잡은 후, 사람들은 빛의 흐름 속에서 더 깊은 질서를 찾고자 했다.

그들은 빛을 따라 형상을 새기고 무늬를 관찰하며 그 안에 담긴 조화의 규칙을 헤아리려 했다.

그러나 얼마 지나지 않아, 그들은 모든 무늬가 조화를 이룰 수 있는 것은 아니라는 사실을 깨달았다. 일부 배열은 균형을 잃고 무너졌고, 사람들은 조화를 이루는 형상을 찾기 위해 고민을 거듭했다.

그들이 남긴 배열을 되짚고, 조화로운 빛의 무늬를 다시 그려보아라.


사람들은 N×NN\times N 크기의 격자 위에 빛을 하나씩 배치하며, 안정적인 무늬를 이루는 방법을 연구했다. 위에서부터 rr번째 행, 왼쪽에서부터 cc번째 열의 격자칸을 (r,c)(r,c)로 표기한다.

다음 조건을 만족하는 배치를 안정적인 구조라 부른다.

  • 격자의 각 행과 각 열에 정확히 하나의 빛이 존재해야 한다.
  • 불안정한 배열이 존재하지 않는다.
    • 세 빛 (r_1,c_1),(r_2,c_2),(r_3,c_3)(r\_1,c\_1) ,(r\_2,c\_2) ,(r\_3,c\_3)에 대해, r_1\<r_2\<r_3r\_1\<r\_2\<r\_3, c_1>c_2>c_3c\_1>c\_2>c\_3을 동시에 만족한다면 이를 불안정한 배열이라고 한다.

예를 들어, 아래 그림에서 왼쪽은 안정적인 구조이다. 하지만 오른쪽은 세 칸 (1,5)(1,5), (2,2)(2,2), (3,1)(3,1)이 불안정한 배열을 이루므로, 안정적인 구조가 아니다.

사람들은 더 정교한 구조를 탐구하기 위해 다음과 같은 형태의 조건들을 제시했다.

  • 11열부터 cc열까지 배치된 cc개 빛의 행 번호 중 최댓값이 rr이어야 한다.

사람들은 이러한 형태의 조건을 추가하거나 제거하며 안정적인 구조의 수가 어떻게 달라지는지 살펴보고자 한다.

입력

첫 줄에 격자의 크기를 나타내는 정수 NN과 쿼리의 수 QQ가 공백으로 구분되어 주어진다.

이후 QQ개의 줄에 걸쳐, 그중 ii번째 줄에는 다음과 같은 형태 중 하나의 쿼리가 주어진다.

  • 1,r_i,c_i1\\, r\_i\\, c\_i: 조건이 새로 추가된다. 11열부터 c_ic\_i열까지 배치된 c_ic\_i개 빛의 행 번호 중 최댓값이 r_ir\_i이어야 한다.
  • 2,x_i2\\, x\_i: x_ix\_i번 쿼리로 인해 추가된 조건이 제거된다.
  • 33: 현재 존재하는 조건을 모두 만족하는 안정적인 구조의 개수를 출력한다.

쿼리가 들어오기 전에는 조건이 하나도 없다.

출력

33번 종류의 쿼리가 들어올 때마다, 현재 존재하는 조건을 모두 만족하는 안정적인 구조의 개수를 109+710^9+7로 나눈 나머지를 한 줄에 하나씩 출력한다.

제한

아래 제한에서 t_it\_i는 ii번 쿼리의 종류를 의미한다.

  • 3≤N≤3×1053\le N\le 3\times 10^5
  • 1≤Q≤3×1051\le Q\le 3\times 10^5
  • 1≤t_i≤31\le t\_i\le 3 (1≤i≤Q)(1\le i\le Q)
  • 1≤r_i≤N1\le r\_i\le N (1≤i≤Q,t_i=1)(1\le i\le Q,t\_i=1)
  • 1≤c_i≤N1\le c\_i\le N (1≤i≤Q,t_i=1)(1\le i\le Q,t\_i=1)
  • 1≤x_i\<i1\le x\_i\<i (1≤i≤Q,t_i=2)(1\le i\le Q,t\_i=2)
  • t_x_i=1t\_{x\_i}=1 (1≤i≤Q,t_i=2)(1\le i\le Q,t\_i=2)
  • x_i≠x_jx\_i\neq x\_j (1≤i\<j≤Q,t_i=t_j=2)(1\le i\<j\le Q,t\_i=t\_j=2)
  • 33번 종류의 쿼리가 하나 이상 존재한다.

예제4

  1. 예제 1

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

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

    입력
    20 1
    3
    
    예상 출력
    564120378
    
  4. 예제 4

    입력
    20 2
    1 15 10
    3
    
    예상 출력
    936990054