#L4027. 「CCO 2022」Phone Plans

「CCO 2022」Phone Plans

题目描述

译自 CCO 2022 Day2 T2「Phone Plans」。

CCOland 的市长 Jason 想要在 NN 个住户之间安装电话线,这些住户从 11NN 编号。为此,他向两家竞争对手 Keenan 移动电话(简称 K 公司)和 Chris 家庭电话(简称 C 公司)询问了他们的电话套餐。

一个公司的电话套餐对应于一个特定的等级,每条电话线都有一个等级和与之相关的公司。如果你从一个公司购买了等级为 ll 的电话套餐,那么你就能够使用该公司所有等级小于或等于 ll 的电话线。等级为 ll 的电话套餐的价格为 ll,你不能选择价格低于 00 的电话套餐。

两个住户只有在通过同一家公司的电话线的路径连接时才能相互通信。Jason 想要从每家公司购买一个最低成本的电话套餐,使得至少有 KK 对不同的住户能够相互通信(同一对住户通过任意一家公司通信即计数,不重复统计)。

输入格式

第一行包含四个用空格分隔的整数 N,A,B,KN, A, B, K,分别表示:

  • NN:住户的数量;
  • AA:K 公司的电话线数量;
  • BB:C 公司的电话线数量;
  • KK:需要能够相互通信的最小住户对数。

接下来的 AA 行,每行包含三个用空格分隔的整数 u,vu, vll,表示一条 K 公司的电话线:

  • 连接住户 uuvv1u,vN1 \leq u, v \leq N);
  • 等级为 ll1l1091 \leq l \leq 10^9)。

接下来的 BB 行,每行包含三个用空格分隔的整数 u,vu, vll,表示一条 C 公司的电话线:

  • 连接住户 uuvv1u,vN1 \leq u, v \leq N);
  • 等级为 ll1l1091 \leq l \leq 10^9)。

输出格式

输出连接至少 KK 对不同住户所需的最低成本(即 K 公司套餐价格 + C 公司套餐价格)。如果不可能(即使购买两家公司的最高等级套餐,通信对数仍不足 KK),则输出 1-1

样例

输入

6 4 4 9
1 2 1
2 3 2
1 4 3
3 4 4
5 6 40
1 5 30
2 6 20
3 6 10

输出

33

样例解释

  • 选择 K 公司等级 33 的套餐(价格 33):可使用等级 3\leq 3 的电话线,形成连通分量 {1,2,3,4}\{1,2,3,4\},通信对数为 (42)=6\binom{4}{2} = 6 对((1,2),(1,3),(1,4),(2,3),(2,4),(3,4)(1,2),(1,3),(1,4),(2,3),(2,4),(3,4))。
  • 选择 C 公司等级 3030 的套餐(价格 3030):可使用等级 30\leq 30 的电话线,形成连通分量 {1,2,3,5,6}\{1,2,3,5,6\},新增通信对数为 33 对((1,5),(2,6),(3,6)(1,5),(2,6),(3,6)),与 K 公司的对数无重复。
  • 总通信对数 6+3=96 + 3 = 9,满足 K=9K=9,总成本 3+30=333 + 30 = 33,为最低成本。

数据范围与提示

对于所有的数据,有:

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 0A,B2×1050 \leq A, B \leq 2 \times 10^5
  • 0KN(N1)20 \leq K \leq \frac{N(N-1)}{2}(N2)\binom{N}{2} 为所有住户对的总数)。

详细子任务附加限制及分值如下表所示:

子任务编号 分值 NN 的范围 A,BA, B 的范围 额外限制
1 24 1N20001 \leq N \leq 2000 0A,B2×1050 \leq A, B \leq 2 \times 10^5
2 20 1N2×1051 \leq N \leq 2 \times 10^5 K 公司只连接奇数编号住户;C 公司只连接偶数编号住户
3 24 0A100 \leq A \leq 10
4 32 0A,B2×1050 \leq A, B \leq 2 \times 10^5