CF1051F.The Shortest Statement

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a weighed undirected connected graph, consisting of nn vertices and mm edges.

You should answer qq queries, the ii -th query is to find the shortest distance between vertices uiu_i and viv_i .

输入格式

The first line contains two integers nn and m (1n,m105,mn20)m~(1 \le n, m \le 10^5, m - n \le 20) — the number of vertices and edges in the graph.

Next mm lines contain the edges: the ii -th edge is a triple of integers vi,ui,di (1ui,vin,1di109,uivi)v_i, u_i, d_i~(1 \le u_i, v_i \le n, 1 \le d_i \le 10^9, u_i \neq v_i) . This triple means that there is an edge between vertices uiu_i and viv_i of weight did_i . It is guaranteed that graph contains no self-loops and multiple edges.

The next line contains a single integer q (1q105)q~(1 \le q \le 10^5) — the number of queries.

Each of the next qq lines contains two integers uiu_i and vi (1ui,vin)v_i~(1 \le u_i, v_i \le n) — descriptions of the queries.

Pay attention to the restriction mn  20m - n ~ \le ~ 20 .

输出格式

Print qq lines.

The ii -th line should contain the answer to the ii -th query — the shortest distance between vertices uiu_i and viv_i .

输入输出样例

  • 输入#1

    3 3
    1 2 3
    2 3 1
    3 1 5
    3
    1 2
    1 3
    2 3
    

    输出#1

    3
    4
    1
    
  • 输入#2

    8 13
    1 2 4
    2 3 6
    3 4 1
    4 5 12
    5 6 3
    6 7 8
    7 8 7
    1 4 1
    1 8 3
    2 6 9
    2 7 1
    4 6 3
    6 8 2
    8
    1 5
    1 7
    2 3
    2 8
    3 7
    3 4
    6 8
    7 8
    

    输出#2

    7
    5
    6
    7
    7
    1
    2
    7
    
首页