#joi2015hod. [joi2015ho_d]舞踏会 (Ball)
[joi2015ho_d]舞踏会 (Ball)
#「JOI 2014/2015 决赛」舞会
题目描述
译自 JOI 2014/2015 决赛 T4「舞踏会」
IOI 王国为了庆祝 JOI 公主的生日,举行了舞会。 预定有 位贵族要参加舞会。 是奇数。将贵族们从 到 编号。每个贵族有一个由整数表示的舞蹈熟练度 。贵族 舞蹈熟练度为 。 舞会中,含 JOI 公主在内的 人两两一组跳舞。 IOI 王国遵循老手帮新手的传统,按以下方法决定跳舞的分组。
- 开始时, 个贵族排成一列。
- 直到队列中只剩下一个贵族为止,不断进行以下操作。
- 调查最前面 个贵族的舞蹈熟练度。
- 这 个人中舞蹈熟练度最大的贵族称为 。如果存在多个人,从中选出序号最小的称为 。
- 这 个人中舞蹈熟练度最小的贵族称为 。如果存在多个人,从中选出序号最大的称为 。
- 和 离开队列并组成一组。
- 这三人中没有被选择的一个人移动到队列最后。
- 最后剩下的一个人和 JOI 公主一组。
从第 个贵族到第 个贵族的 个贵族已经决定了自己开始时排在队列的第几个。剩下的 个贵族的排列方式可以由国王自由决定。
因为 JOI 公主才刚开始学跳舞,国王想知道和 JOI 公主组队的贵族的舞蹈熟练度的最大值。
任务
给出每个贵族的舞蹈熟练度,和 个贵族开始时在队列中的位置。请编写程序求出和 JOI 公主一组的贵族的舞蹈熟练度的最大值。
第一行为两个以空格分开的整数 。分别表示舞会有 个贵族参加,已经决定排列位置的贵族有 人。
接下来 行中,第 行 为两个以空格分开的整数 。分别表示第 个贵族的舞蹈熟练度为 。贵族 开始时排在队列的第 位。
接下来 行中,第 行 为一个整数 。表示贵族 的舞蹈的熟练度为 。
输出一行:表示和 JOI 公主组队的贵族的舞蹈熟练度的最大值。
输入样例 1
7 3
5 2
5 5
8 6
6
2
8
9
输出样例 1
8
样例解释 1
开始时有 个人的位置是确定的。
括号内的数字表示舞蹈的熟练度,左端是队列的开始。
举例来说,考虑从队首开始的贵族的序号分别为时:
这时队列会依次发生以下变化:
- 队列最前面的 个贵族(贵族 ,贵族 ,贵族 ) 中,舞蹈熟练度最大的人(贵族 )和舞蹈熟练度最小的人(贵族 )组队,剩下的贵族 移动到队尾。
- 接下来,队列最前面的 个贵族(贵族 ,贵族 ,贵族 ) 中,舞蹈熟练度最大的人有两个:贵族 和贵族 ,其中序号比较小的为贵族 。而前 人中舞蹈熟练度最小的人为贵族 ,所以贵族 和贵族 组队。剩下的贵族 移动到队尾。
- 接下来,队列最前面的 个贵族(贵族 ,贵族 ,贵族 ) 中,舞蹈熟练度最大的人(贵族 )和舞蹈熟练度最小的人(贵族 )组队,剩下的贵族 移动到队尾。
- 最后剩下的是贵族 ,他将和 JOI 公主一组。
贵族 的舞蹈熟练度为 ,这就是和 JOI 公主一组的贵族舞蹈熟练度最大值。
输入样例 2
3 1
5 3
5
5
输出样例 2
5
输入样例 3
7 2
32 4
27 6
37
41
41
30
27
输出样例 3
37
对于 的数据:
对于另 的数据:
对于另 的数据:
对于 的数据,
- 为奇数
感谢 Planet6174 提供的翻译