P11225 [COTS 2019] 疏散 Sklonište
题目背景
译自 [Izborne Pripreme 2019 (Croatian IOI/CEOI Team Selection)](https://hsin.hr/pripreme2019/) D2T2。$\texttt{4s,0.5G}$。
题目描述
给定 $N$ 个点 $M$ 条边的无向连通图,边有边权。有 $K$ 个关键点 $A_1,A_2,\cdots,A_K$,**容量**为 $S_1,S_2,\cdots,S_K$。
图中的居民要疏散。也就是说,你需要构造一个序列 $B_1,B_2,\cdots,B_N$,使得:
- $\forall 1\le i\le N$,$1\le B_i\le K$;
- 对于 $1\le i\le K$,定义 $\displaystyle \mathrm{cnt}_i=\sum_{1\le j\le N} [B_j=i]$,也就是 $i$ 在 $B$ 序列中出现的次数。则 $\mathrm{cnt}_i\le S_i$。
定义序列 $B$ 的**疏散时间**为 $\displaystyle \max_{1\le i\le N} \operatorname{dist}(i,A_{B_i})$,其中 $\operatorname{dist}(u,v)$ 指图中 $u,v$ 间最短路的长度。
求出疏散时间的最小值。保证 $\sum_i S_i\ge N$。
输入格式
第一行,三个正整数 $N,M,K$;
接下来 $M$ 行,每行三个正整数 $u,v,w$,描述一条无向边 $(u,v)$,边权为 $w$。保证 $u\neq v$。
接下来 $K$ 行,每行两个正整数描述 $A_i,S_i$。
保证 $\sum_i S_i\ge N$。
输出格式
输出一行一个数,表示答案。
说明/提示
对于 $100\%$ 的数据,保证:
- $1\le N\le 10^5$;
- $N-1\le M\le 3\times 10^5$;
- $1\le K\le 17$;
- 给定图连通,无自环;
- $1\le w,S_i\le 10^9$;
- $1\le u,v,A_i\le N$;
- $S_i$ 两两不同;
- $\sum_i S_i\ge N$。
| 子任务编号 | $N\le $ | $M\le $ | $K\le$ | 得分 |
| :--: | :--: |:--: | :--: | :--: |
| $ 1 $ | $ 100 $ | $ 500 $ | $5$ | $30$ |
| $ 2 $ | $ 10^5 $ | $ 3\times 10^5 $ | $10 $ | $30$ |
| $ 3 $ | $ 10^5 $ | $ 3\times 10^5 $ | $17$ | $40$ |