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

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

정거장

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

요약
역의 중요도에 따라 정해지는 버스 노선과 요금으로, 각 관광객의 출발역에서 도착역까지 최소 비용을 구합니다.
난이도

어려움10점 중 8점

유형
유니온 파인드, 트리, 최단 경로, 그래프
정답자
아직 제출이 없습니다

문제

A시의 중심 도로를 따라 nn개의 버스 정류장과 nn개의 버스 노선이 있다. 정류장은 왼쪽에서 오른쪽으로 1번부터 nn번까지 번호가 붙어 있고, 정류장 ii의 중요도는 aia_i이다. 버스 노선도 1번부터 nn번까지 번호가 붙어 있다. kk번 노선의 버스는 중요도가 kk 이상인 모든 정류장에 선다. 각 노선은 양방향으로 운행한다.

정류장 xx에 있는 관광객은 xx에 서는 버스 아무 것이나 탈 수 있고, 방향을 하나 골라 그 방향으로 버스가 다음에 방문하는 정류장 yy까지 갈 수 있다. 이런 정류장이 있을 때만 가능하다. 이동 비용은 y<xy < x이면 lxl_x위안, y>xy > x이면 rxr_x위안이다. 관광객은 목적지에 도달하기 위해 버스를 여러 번 탈 수 있다.

관광객은 qq명이다. jj번째 관광객은 정류장 sjs_j에서 tjt_j까지 이동하려 한다. 각 관광객에 대해 경로의 최소 비용을 구하라.

모든 ii (1≤i≤n−11 \le i \le n-1)에 대해 li≤li+1l_i \le l_{i+1}이고 ri≥ri+1r_i \ge r_{i+1}이다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다 (1≤T≤3⋅1041 \le T \le 3 \cdot 10^4). 각 테스트 케이스는 정류장의 수 nn과 관광객의 수 qq를 나타내는 두 정수로 시작한다 (1≤n,q≤3⋅1051 \le n, q \le 3 \cdot 10^5).

다음 줄에는 a1,…,ana_1, \ldots, a_n이 주어진다 (1≤ai≤n1 \le a_i \le n). 이어서 nn개의 줄이 주어지며, ii번째 줄에는 lil_i와 rir_i가 주어진다 (1≤li,ri≤1091 \le l_i, r_i \le 10^9, li≤li+1l_i \le l_{i+1}, ri≥ri+1r_i \ge r_{i+1}). 그 다음 qq개의 줄에는 각각 sjs_j와 tjt_j가 주어진다 (1≤sj,tj≤n1 \le s_j, t_j \le n).

모든 테스트 케이스에 걸친 nn의 합과 qq의 합은 각각 3⋅1053 \cdot 10^5을 넘지 않는다.

출력

각 관광객에 대해 최소 비용을 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    1
    9 6
    1 7 3 4 9 9 1 2 2
    1 11
    1 11
    5 11
    7 10
    8 6
    8 4
    8 3
    9 1
    10 1
    1 9
    5 1
    3 1
    7 6
    2 6
    1 1
    
    예상 출력
    33
    9
    6
    8
    17
    0