#P4350. [CERC2015] Export Estimate

[CERC2015] Export Estimate

Description

城市地图是一个无向图,包含编号 11nnnn 个交叉路口和 mm 条双向街道。每条街道都有一个非负整数的优先级。当客户请求地图时,会指定一个优先级阈值 pp。原始地图会经过以下处理流程生成导出地图:

  1. 所有优先级小于 pp 的街道被删除;

  2. 按顺序处理每个交叉路口 ii(从 11nn 依次处理):

    (a) 如果这个路口没有连接到任何街道,它就会被删除。

    (b) 如果路口 ii 恰好连接两条不同街道 xxyy(分别通向不同于 ii 的路口 aabb),则按以下步骤进行收缩:

    i.删除道路 xx 和道路 yy

    ii.删除路口 ii

    iii.加入一条连接路口 aabb 的新道路 zz

最初,图中没有环(即一条连接到自身的边)或者平行的边(即在同一对交点之间有一条以上的边),但在收缩的过程中可能会形成环和平行边。

请注意,在步骤 2.(b) 之前,xxyy 都不能是环(即 aabb 必须和 ii 不同),但是新增的 zz 可以是一个环(即 aabb 可能是相同的)。

给定地图和一系列导出请求,对每个请求计算导出地图中的路口数量和街道数量。

Input Format

第一行包含两个整数 n(1n3×105)n(1 \le n\le3\times10^5)m(1m3×105)m(1\le m\le 3\times10^5) 分别是点和边的数量。

后面 mm 行包含三个整数分别是 a,ba,bp(1a,bn,0p3×105)p(1\le a,b \le n,0\le p\le 3\times10^5) 用来描述 a,ba,b 之间边的优先级 pp,没有一条边只连接一个点,两个点之间最多有一条边。

m+2m+2 行包含一个整数 q(1q3×105)q(1\le q\le 3\times10^5) 表示询问的个数,下一行有 qq 个整数,第 kk 个整数 tk(0tk3×105)t_k(0\le t_k\le 3\times10^5) 是第 kk 次询问的优先级。

Output Format

输出包括 qq 行。第 kk 行包含两个整数,分别是第 kk 次询问的点和边的个数。

6 7 
1 2 20 
2 3 80 
2 5 100 
3 5 50 
3 4 100 
5 6 90 
4 6 100 
4 
25 75 85 95
2 3 
1 1 
2 1 
4 2

10 14 
2 7 150 
1 2 100 
2 3 150 
3 1 200 
1 4 60 
4 5 20 
2 5 100 
5 6 90 
6 7 120 
7 5 130 
6 8 50 
8 9 200 
9 10 200 
10 7 200 
5 
300 50 95 100 110
0 0 
6 9 
4 5 
4 5 
5 4