만드는 중입니다

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

마나 수집

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

요약
방향 그래프의 각 마나 풀은 초당 마나를 모읍니다. 정확히 s초 뒤 풀 e에 있어야 할 때 모을 수 있는 최대 마나양을 쿼리마다 구합니다.
난이도

어려움10점 중 9점

유형
동적 계획법, 비트 연산, 최단 경로, 분할 정복
정답자
아직 제출이 없습니다

문제

Bessie는 최근 마법에 관심이 생겨, 아주 중요한 주문을 위해 마나를 모아야 한다. Bessie에게는 NN개(1≤N≤181\le N\le 18)의 마나 웅덩이가 있고, ii번째 웅덩이는 초당 mim_i의 마나가 쌓인다(1≤mi≤1081\le m_i\le 10^8). 웅덩이들은 MM개(0≤M≤N(N−1)0\le M\le N(N-1))의 방향 간선 (ai,bi,ti)(a_i,b_i,t_i)로 연결되어 있으며, 이는 aia_i에서 bib_i로 tit_i초 만에 이동할 수 있다는 뜻이다(1≤ai,bi≤N1\le a_i, b_i\le N, ai≠bia_i\neq b_i, 1≤ti≤1091\le t_i\le 10^9). Bessie가 웅덩이에 있으면 그 곳에 쌓인 마나를 모두 거두며, 웅덩이는 비워진다. 시각 0에는 모든 웅덩이가 비어 있고, Bessie는 시작할 웅덩이를 고를 수 있다.

QQ개(1≤Q≤2⋅1051\le Q\le 2\cdot 10^5)의 질의가 주어진다. 각 질의는 두 정수 ss와 ee(1≤s≤1091\le s\le 10^9, 1≤e≤N1\le e\le N)로 이루어진다. 각 질의마다, ss초가 끝난 시점에 웅덩이 ee에 있어야 할 때 ss초 동안 모을 수 있는 마나의 최댓값을 구하라.

입력

첫 줄에 NN과 MM이 주어진다.

다음 줄에 m1,m2,…,mNm_1, m_2, \dots, m_N이 주어진다.

다음 MM개의 줄에 각각 aia_i, bib_i, tit_i가 주어진다. 같은 순서쌍 (ai,bi)(a_i,b_i)는 두 번 나오지 않는다.

다음 줄에 QQ가 주어진다.

다음 QQ개의 줄에 각각 두 정수 ss와 ee가 주어진다.

출력

QQ개의 줄을 출력한다. 각 줄은 질의 하나에 대한 답이다.

예제2

  1. 예제 1

    입력
    2 1
    1 10
    1 2 10
    4
    5 1
    5 2
    100 1
    100 2
    
    예상 출력
    5
    50
    100
    1090
    
  2. 예제 2

    입력
    4 8
    50000000 100000000 20000000 70000000
    1 2 20
    2 1 50
    2 3 90
    1 3 40
    3 1 10
    4 1 25
    1 4 5
    4 3 70
    3
    8 3
    1000000000 1
    500000 4
    
    예상 출력
    160000000
    239999988050000000
    119992550000000