CF1140G.Double Tree
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a special undirected graph. It consists of 2n vertices numbered from 1 to 2n . The following properties hold for the graph:
- there are exactly 3n−2 edges in the graph: n edges connect vertices having odd numbers with vertices having even numbers, n−1 edges connect vertices having odd numbers with each other, and n−1 edges connect vertices having even numbers with each other;
- for each edge (u,v) between a pair of vertices with odd numbers, there exists an edge (u+1,v+1) , and vice versa;
- for each odd number u∈[1,2n−1] , there exists an edge (u,u+1) ;
- the graph is connected; moreover, if we delete all vertices with even numbers from it, and all edges incident to them, the graph will become a tree (the same applies to deleting odd vertices).
So, the graph can be represented as two trees having the same structure, and n edges connecting each vertex of the first tree to the corresponding vertex of the second tree.
Edges of the graph are weighted. The length of some simple path in the graph is the sum of weights of traversed edges.
You are given q queries to this graph; in each query, you are asked to compute the length of the shortest path between some pair of vertices in this graph. Can you answer all of the queries?
输入格式
The first line of the input contains one integer n ( 2≤n≤3⋅105 ).
The second line contains n integers w1,2 , w3,4 , ..., w2n−1,2n ( 1≤wi,i+1≤1012 ). These integers describe the weights of the edges connecting odd vertices with even ones.
Then n−1 lines follow. i -th line contains four integers xi , yi , wi,1 and wi,2 ( 1≤xi,yi≤n , xi=yi , 1≤wi,j≤1012 ); it describes two edges: one connecting 2xi−1 with 2yi−1 and having weight wi,1 ; another connecting 2xi with 2yi and having weight wi,2 .
The next line contains one integer q ( 1≤q≤6⋅105 ) — the number of queries.
Then q lines follow, i -th line contains two integers ui and vi ( 1≤ui,vi≤2n , ui=vi ), describing a query "compute the length of the shortest path between vertices ui and vi ".
输出格式
Print q integers, i -th integer should be equal to the answer to the i -th query.
输入输出样例
输入#1
5 3 6 15 4 8 1 2 5 4 2 3 5 7 1 4 1 5 1 5 2 1 3 1 2 5 6 1 10
输出#1
3 15 4
说明/提示
The graph in the first test looks like that: