만드는 중입니다

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

시간을 달리는 비타로

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

요약
도시가 일렬로 이어져 있고 각 도로는 통행 가능한 시간 구간이 정해져 있습니다. 구간을 바꾸는 갱신과 최소 되감기 횟수를 구하는 질의를 처리합니다.
난이도

어려움10점 중 8점

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

문제

비버랜드에는 NN개의 도시가 있고, 1번부터 NN번까지 번호가 붙어 있다. ii번째 (1≤i≤N−11 \le i \le N-1) 도로는 ii번 도시와 i+1i+1번 도시를 양방향으로 잇는다. 비버랜드의 하루는 1 000 000 000개의 단위시간으로 나뉘어 있으며, 이 단위시간을 쵸라고 부른다. 하루가 시작하고 xx쵸가 지난 시점을 시각 xx라고 한다. 도로 하나를 건너는 데에는 1쵸가 걸린다. ii번째 도로는 시각 LiL_i부터 시각 RiR_i 사이에만 건널 수 있다. 정확히는, Li≤x≤Ri−1L_i \le x \le R_i - 1을 만족하는 시각 xx에 ii번 도시 또는 i+1i+1번 도시를 떠나, 시각 x+1x+1에 다른 도시에 도착해야 한다.

비타로는 비버랜드에 사는 평범한 비버다. 지각을 자주 한 비타로는 이를 고치려고 애쓰다가 시간을 거슬러 올라갈 수 있는 능력을 얻었다. 이 능력을 한 번 쓰면 1쵸 뒤로 간다. 다만 어제로는 갈 수 없다. 시각 0과 시각 1 사이에 능력을 쓰면 시각 0으로 돌아간다. 이 능력은 도시에 있을 때만 쓸 수 있다. 능력을 써도 비타로의 위치는 변하지 않는다.

능력을 쓰면 비타로는 피곤해진다. 능력을 가장 적게 쓰는 이동 방법을 찾으려고 비타로는 QQ번의 사고실험을 했다. 사고실험의 jj번째 단계에서는 다음 중 하나를 한다.

  • PjP_j번째 도로를 건널 수 있는 시각을 바꾼다. 바꾼 뒤에는 시각 SjS_j부터 시각 EjE_j 사이에만 PjP_j번째 도로를 건널 수 있다.
  • 시각 BjB_j에 AjA_j번 도시에 있을 때, 시각 DjD_j에 CjC_j번 도시로 이동하는 데 필요한 능력 사용 횟수의 최솟값을 구한다.

입력

첫 줄에 NN과 QQ가 주어진다. 이어지는 N−1N-1개의 줄에는 각각 LiL_i와 RiR_i가 주어진다. 그 다음 QQ개의 질의가 한 줄에 하나씩 주어진다. 질의는 두 형식 중 하나이다.

  • Tj=1T_j = 1이면 TjT_j, PjP_j, SjS_j, EjE_j 네 개의 정수가 주어진다.
  • Tj=2T_j = 2이면 TjT_j, AjA_j, BjB_j, CjC_j, DjD_j 다섯 개의 정수가 주어진다.

출력

Tj=2T_j = 2인 각 질의마다 필요한 능력 사용 횟수의 최솟값을 질의 순서대로 한 줄에 하나씩 출력한다.

제한

  • 1≤N≤300 0001 \le N \le 300\ 000.
  • 1≤Q≤300 0001 \le Q \le 300\ 000.
  • 0≤Li<Ri≤999 999 9990 \le L_i < R_i \le 999\ 999\ 999 (1≤i≤N−11 \le i \le N-1).
  • 1≤Tj≤21 \le T_j \le 2 (1≤j≤Q1 \le j \le Q).
  • 1≤Pj≤N−11 \le P_j \le N-1 (1≤j≤Q1 \le j \le Q, Tj=1T_j = 1).
  • 1≤Sj≤Ej≤999 999 9991 \le S_j \le E_j \le 999\ 999\ 999 (1≤j≤Q1 \le j \le Q, Tj=1T_j = 1).
  • 1≤Aj≤N1 \le A_j \le N (1≤j≤Q1 \le j \le Q, Tj=2T_j = 2).
  • 1≤Bj≤999 999 9991 \le B_j \le 999\ 999\ 999 (1≤j≤Q1 \le j \le Q, Tj=2T_j = 2).
  • 1≤Cj≤N1 \le C_j \le N (1≤j≤Q1 \le j \le Q, Tj=2T_j = 2).
  • 1≤Dj≤999 999 9991 \le D_j \le 999\ 999\ 999 (1≤j≤Q1 \le j \le Q, Tj=2T_j = 2).

예제4

  1. 예제 1

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

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

    입력
    7 7
    112103440 659752416
    86280800 902409187
    104535475 965602300
    198700180 945132880
    137957976 501365807
    257419446 565237610
    2 4 646977260 7 915994878
    2 1 221570340 6 606208433
    2 7 948545948 4 604273995
    2 7 247791098 5 944822313
    2 7 250362511 2 50167280
    2 3 364109400 4 555412865
    2 7 33882587 7 186961394
    
    예상 출력
    145611455
    0
    447180143
    0
    207252171
    0
    0
    
  4. 예제 4

    입력
    7 7
    535825574 705426142
    964175291 996597835
    481817391 649559926
    4519006 410772613
    74521477 274584126
    256535565 899389890
    1 6 511428966 602601933
    1 1 69986642 201421232
    2 3 636443425 4 625975977
    1 6 235225515 405336399
    2 3 866680458 3 701821857
    1 6 180606048 900533151
    1 6 612564160 720179605
    
    예상 출력
    10467449
    164858601