问题 C: 灾后重建

内存限制:256 MB 时间限制:5 S
题面:传统 评测方式:文本比较 上传者:
提交:5 通过:2

题目描述

Pear 市一共有 $N$($ \le 50000$)个居民点,居民点之间有 $M$($ \le 2\times 10^5$)条双向道路相连。这些居民点两两之间都可以通过双向道路到达。这种情况一直持续到最近,一次严重的地震毁坏了全部 $M$ 条道路。
震后,Pear 打算修复其中一些道路,修理第 $i$ 条道路需要 $P_i$ 的时间。不过,Pear 并不打算让全部的点连通,而是选择一些标号特殊的点让他们连通。
Pear 有 $Q$($ \le 50000$)次询问,每次询问,他会选择所有编号在 $[l,r]$ 之间,并且编号 $\bmod{K}=C$ 的点,修理一些路使得它们连通。由于所有道路的修理可以同时开工,所以完成修理的时间取决于花费时间最长的一条路,即涉及到的道路中 $P_i$ 的最大值。
你能帮助 Pear 计算出每次询问时需要花费的最少时间么?这里询问是独立的,也就是上一个询问里的修理计划并没有付诸行动。

输入格式

第一行三个正整数 $N$、$M$、$Q$,含义如题面所述。
接下来 $M$ 行,每行三个正整数 $X_i$、$Y_i$、$P_i$,表示一条连接 $X_i$ 和 $Y_i$ 的双向道路,修复需要 $P_i$ 的时间。可能有自环,可能有重边。$1 \le P_i \le 10^6$。
接下来 $Q$ 行,每行四个正整数 $L_i$、$R_i$、$K_i$、$C_i$,表示这次询问的点是 $[L_i,R_i]$ 区间中所有编号 $\bmod{K_i}=C_i$ 的点。保证参与询问的点至少有两个。

输出格式

输出 $Q$ 行,每行一个正整数表示对应询问的答案。

输入样例 复制

7 10 4
1 3 10
2 6 9
4 1 5
3 7 4
3 6 9
1 5 8
2 7 4
3 2 10
1 7 6
7 6 9
1 7 1 0
1 7 3 1
2 5 1 0
3 7 2 1

输出样例 复制

9
6
8
8

数据范围与提示

对于 $20\%$ 的数据,$N,M,Q \le 30$。
对于 $40\%$ 的数据,$N,M,Q \le 2000$。
对于 $100\%$ 的数据,$N \le 50000,M \le 2 \times 10^5,Q \le 50000.P_i \le 10^6.L_i,R_i,K_i$ 均在 $[1,N]$ 范围内,$C_i$ 在 $[0,K_i)$ 范围内。
时限 5 秒, 256M