#YNU10J. 网络扩建

网络扩建

网络扩建

题目背景

编程挑战赛组委会在布置比赛场地的网络。场地内有若干台交换机,其中一部分交换机之间已经铺设了网线,使得部分交换机形成了若干个互相连通的区域(称为「连通块」)。不同连通块之间目前无法通信,它们各自是孤立的。

组委会手上有一份备选网线的清单,共 qq 条。每条备选网线可以连接两台指定的交换机。一旦铺设一条备选网线且它两端的交换机原本不在同一个连通块内,这两个连通块就会合并为一个更大的连通块,从而减少一个孤立区域。如果两端已经在同一个连通块内,铺设这条网线不会改变任何东西(它是一条冗余线)。

题目描述

nn 台交换机,编号 1n1 \sim n。已经铺设了 mm 条网线,每条网线连接 uiu_iviv_i

现在有 qq 条备选网线,按顺序编号 11qq,第 ii 条连接 aia_ibib_i。你必须按顺序考虑备选网线——即只能从第 11 条开始,连续地铺设前 kk 条(0kq0 \le k \le q),不能跳过任何一条。

你的目标是让所有交换机最终处于同一个连通块内(即任意两台交换机都可以通过若干条网线互相到达)。请问最少需要铺设多少条备选网线(即最小的 kk)?如果即使把全部 qq 条备选网线都铺上也无法达成目标,请输出 1-1

输入格式

第一行三个整数 n,m,qn, m, q1n1051 \le n \le 10^50m2×1050 \le m \le 2\times 10^51q2×1051 \le q \le 2\times 10^5)。

接下来 mm 行,每行两个整数 ui,viu_i, v_i1ui,vin1 \le u_i, v_i \le n),表示一条已有网线。

接下来 qq 行,每行两个整数 ai,bia_i, b_i1ai,bin1 \le a_i, b_i \le n),表示一条备选网线。

输出格式

一个整数,表示最少需要铺设的备选网线条数;若无法达成目标则输出 1-1

样例

样例 1

6 3 4
1 2
3 4
5 6
1 3
4 6
2 5
1 6
2

解释:已有网线形成了三个连通块 {1,2}\{1,2\}{3,4}\{3,4\}{5,6}\{5,6\}。铺第 11 条备选线 (1,3)(1,3) 后,前两块合并为 {1,2,3,4}\{1,2,3,4\},还剩 22 个孤立区域。铺第 22 条备选线 (4,6)(4,6) 后,{1,2,3,4}\{1,2,3,4\}{5,6}\{5,6\} 合并,全场只剩 11 个连通块,目标达成。答案为 22。注意第 11 条备选线连接的是 (1,3)(1,3),实际上第 11 条就合并了 {1,2}\{1,2\}{3,4}\{3,4\}

样例 2

输入:
4 0 3
1 2
3 4
2 3
输出:
3

解释:初始没有已有网线,44 台交换机各自孤立(44 个连通块)。铺第 11(1,2)(1,2),剩 33 块。铺第 22(3,4)(3,4),剩 22 块。铺第 33(2,3)(2,3),所有交换机连通,目标达成。答案为 33

样例 3

4 0 2
1 2
3 4
-1

解释:初始 44 个孤立块。铺完 22 条备选线后仍然有 22 个连通块({1,2}\{1,2\}{3,4}\{3,4\}),无法达成全场连通,输出 1-1