만드는 중입니다

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

최단 경로 질의

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

요약
검은 간선과 흰 간선으로 이루어진 방향 비순환 그래프에서, 검은 간선 길이 a와 흰 간선 길이 b가 주어질 때 1번 정점에서 x번 정점까지의 최단 거리를 구합니다.
난이도

어려움10점 중 8점

유형
최단 경로, 동적 계획법, 그래프
정답자
아직 제출이 없습니다

문제

정점이 nn개인 방향 비순환 그래프가 주어진다. 정점에는 1,2,…,n1, 2, \ldots, n번 번호가 붙어 있다. 그래프에는 mm개의 간선이 있으며, 각 간선은 검은색 또는 흰색이다. 1번 정점에서 모든 정점에 도달할 수 있는 것이 보장된다.

질의가 qq개 주어진다. ii번째 질의에서는 정수 aia_i, bib_i, xix_i가 주어진다. 검은색 간선의 길이를 aia_i, 흰색 간선의 길이를 bib_i로 볼 때, 1번 정점에서 xix_i번 정점까지 가는 최단 경로의 길이를 구해야 한다.

입력

첫 줄에 정점 수 nn과 간선 수 mm이 주어진다 (1≤n≤500001 \leq n \leq 50000, 1≤m≤1000001 \leq m \leq 100000).

다음 mm개의 줄에는 uiu_i, viv_i, cic_i가 주어지며, 이는 uiu_i번 정점에서 viv_i번 정점으로 가는 방향 간선을 뜻한다 (1≤ui<vi≤n1 \leq u_i < v_i \leq n, vi−ui≤1000v_i - u_i \leq 1000, 0≤ci≤10 \leq c_i \leq 1). ci=0c_i = 0이면 검은색, ci=1c_i = 1이면 흰색이다.

다음 줄에 질의 수 qq가 주어진다 (1≤q≤500001 \leq q \leq 50000). 이어지는 qq개의 줄에는 aia_i, bib_i, xix_i가 주어진다 (1≤ai,bi≤100001 \leq a_i, b_i \leq 10000, 1≤xi≤n1 \leq x_i \leq n).

출력

각 질의마다 1번 정점에서 xix_i번 정점까지 최단 경로의 길이를 한 줄에 출력한다.

예제1

  1. 예제 1

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