SZ#G8U33. 奶牛归位

提交4 通过1
通过率25%
时间限制2000ms
内存限制512MiB
    ID: 12058 传统题 2000ms 512MiB 尝试: 4 已通过: 1 难度: 普及+/提高- 上传者: 标签>GESPGESP强化C++c++编程题并查集离线排序

题目描述

题目描述

小婷的牧场中有 NN 头奶牛和 NN 个位置,奶牛与位置都编号为 11NN。目前位置 ii 上站着奶牛 pip_i,其中 pp11NN 的一个排列。小婷希望最终让奶牛 ii 回到位置 ii

牧场中有 MM 条双向虫洞。第 ii 条虫洞连接位置 aia_i 和位置 bib_i,宽度为 wiw_i。小婷可以任意多次选择一条虫洞,把虫洞两端位置上的奶牛交换。题目保证存在某种交换方案能够完成排序。

一套交换方案的宽度定义为该方案实际使用过的所有虫洞中最窄的宽度。小婷希望在能够把所有奶牛送回正确位置的前提下,使这套方案的宽度尽可能大。

请输出这个最大宽度。如果所有奶牛一开始就已经位于正确位置,则不需要使用任何虫洞,此时输出 1-1

输入格式

第一行输入两个整数 N,MN,M

第二行输入排列 p1,p2,,pNp_1,p_2,\ldots,p_N

接下来 MM 行,第 ii 行输入三个整数 ai,bi,wia_i,b_i,w_i,描述第 ii 条虫洞。

输出格式

输出完成排序时能够保证的最大虫洞宽度下限;若初始排列已经有序,输出 1-1

4 4
3 2 1 4
1 2 9
1 3 7
2 3 10
2 4 3
9

样例说明 #1

只使用宽度不小于 99 的虫洞,也能够把奶牛送回正确位置,因此最优答案为 99

4 1
1 2 3 4
4 2 13
-1

样例说明 #2

排列一开始已经有序,不需要使用虫洞,按照规定输出 1-1

3 2
2 1 3
1 2 5
2 3 1
5

样例说明 #3

交换位置 1,21,2 即可完成排序,能够使用的最大宽度下限为 55

数据范围与约定

1N,M1051\le N,M\le10^5pp1,2,,N1,2,\ldots,N 的一个排列,1ai,biN1\le a_i,b_i\le Naibia_i\ne b_i1wi1091\le w_i\le10^9。题目保证可以完成排序,输入中的所有数均为整数。