#P9112. [IOI2009] Archery

[IOI2009] Archery

题目背景

IOI2009 D1T1

题目描述

一场箭术比赛正在举行。一条直线上排着 NN 个靶子,靶子从左到右依次标号为从 11NN。有 2N2N 个选手,在比赛的任何时刻,同一个靶位上都有两个选手。比赛的每一轮按照如下规则进行:

  • 在同一个靶位的两位选手比赛一场决出胜者,然后所有选手按照如下规则移动:

    • 22NN 号靶位上的胜者移动到他们的左侧的靶位(即分别移动到 1N11\sim N - 1 号靶位)。
    • 22NN 号靶位上的负者,以及 11 号靶位上的胜者,停留在同一个靶位。
    • 11 号靶位上的负者移动到 NN 号靶位。

比赛一共持续 RR 轮,轮数至少为参赛选手的数量,即 R2NR\geq 2N

你是唯一一个准时到达的选手。其它 2N12N - 1 个选手已经提前到达并站成了一排,你现在要做的就是插入这个队伍。在你进入队伍后,队列中前两个选手(最左侧的两个选手)将对应一号靶位,接下来两个选手将对应二号靶位,以此类推,最右侧的两个选手对应 NN 号靶位。

所有 2N2N 个选手(包括你)都用一个数值衡量技术水平,没有两个选手的技术水平相同。在同一个靶位上,数值较小的选手会成为胜者。

在了解了所有选手的技术水平之后,你需要找到一个位置插入使得你最终对应的靶位序号尽量小,在此前提下,你希望你初始时对应的靶位序号尽量大。

任务:编写一个程序,给定所有选手的技术水平(包括你自己)和你的对手们的排列顺序,计算出你的初始靶位编号,以满足你的上述目标。

输入格式

第一行包含两个由空格隔开的整数 N,RN, R,分别表示靶位数和比赛轮数。

接下来 2N2N 行给出选手的排列 S1,S2,,S2NS_1, S_2, \cdots, S_{2N}S1S_1 表示你的排名,S2,S3,,S2NS_2, S_3, \cdots, S_{2N} 表示其他选手的排名,依照他们已经排列好的顺序(由左至右)。SkS_k12N1\sim 2N 的整数,排名 11 表示最好,排名 2N2N 表示最差。没有两位选手的排名相同。

输出格式

输出一个 1N1\sim N 的整数,表示开始的箭靶编号。

4 8
7
4
2
6
5
8
1
3

3

4 9
2
1
5
8
3
4
7
6

2

提示

样例解释

  • 样例 1:你是排名倒数第二的选手。如果你从靶 11 开始比赛,接下来你将移动到靶 44 而且一直留在靶 44 直到最后。如果你从靶 22 或靶 44 开始,你将会一直留到最后。如果你从靶 33 开始,你将会击败最差的选手,然后移到靶 22 并留在那里。

  • 样例 2:你是排名第二的选手。排名第一的选手在靶 11 并一直留在那里。因此,无论你从哪里出发,你永远会按 432144\to 3\to 2\to 1\to 4 的顺序循环移动。为了最终留在靶 11,你应该从靶 22 开始。

数据范围与约定

  • 对于 20%20\% 的数据,N200N\leq 200
  • 对于 60%60\% 的数据,N5000N\leq 5000
  • 对于 100%100\% 的数据,1N2×1051\leq N\leq 2\times 10 ^ 52NR1092N\leq R\leq 10 ^ 91Sk2N1\leq S_k\leq 2NSkS_k 互不相同。

另有三组

https://www.luogu.com.cn/user/21658
ack 数据,不计分。