QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 256 MB Total points: 100

#12785. 射箭

Statistics

射箭比赛按照以下规则进行。共有 $N$ 个靶位排成一行,并按其在线上的位置从 $1$ 到 $N$ 编号(最左侧的靶位为 $1$ 号,最右侧的靶位为 $N$ 号)。共有 $2N$ 名射箭选手。在比赛期间的任何时刻,每个靶位上都有两名选手。比赛的每一轮按照以下流程进行:

每个靶位上的两名选手进行比赛,决出胜负。随后,所有选手按以下方式重新分配:

  • $2$ 号到 $N$ 号靶位的获胜者移动到其左侧的靶位(即分别移动到 $1$ 号到 $N-1$ 号靶位)。
  • $2$ 号到 $N$ 号靶位的失败者,以及 $1$ 号靶位的获胜者,留在原靶位。
  • $1$ 号靶位的失败者移动到 $N$ 号靶位。

比赛持续 $R$ 轮,轮数至少与选手人数相等(即 $R \ge 2N$)。

你是唯一准时到达比赛现场的选手。其他 $2N-1$ 名选手已经提前到达并排成了一列。你现在需要将自己插入到队伍中的某个位置。你知道在你确定位置后,队伍中最左侧的两名选手将从 $1$ 号靶位开始比赛,接下来的两名选手从 $2$ 号靶位开始,以此类推,最右侧的两名选手从 $N$ 号靶位开始。

比赛中的所有 $2N$ 名选手(包括你自己)都按技能水平排名,排名越小代表技能越强。没有两名选手的排名相同。此外,每当两名选手比赛时,排名较小者总是获胜。

了解每位竞争对手的技能水平后,你希望以一种方式插入队伍,以确保你在比赛结束时所在的靶位编号尽可能小。如果存在多种方式达到此目的,你倾向于选择起始靶位编号尽可能大的那种方式。

任务

编写一个程序,给定所有选手(包括你自己)的排名以及竞争对手在队伍中的排列顺序,确定你应该从哪个靶位开始比赛,以实现上述目标。

数据范围

  • $1 \le N \le 200,000$:靶位数量,也等于选手人数的一半。
  • $2N \le R \le 1,000,000,000$:比赛轮数。
  • $1 \le S_k \le 2N$:选手 $k$ 的排名。

输入格式

程序必须从标准输入读取以下数据:

  • 第一行包含两个整数 $N$ 和 $R$,以空格分隔。
  • 接下来的 $2N$ 行列出了选手的排名。第一行是你的排名。其余行包含其他选手的排名,每行一名选手,按他们排队的顺序(从左到右)。这 $2N$ 行中的每一行都包含一个 $1$ 到 $2N$ 之间的整数。排名 $1$ 为最强,排名 $2N$ 为最弱。没有两名选手的排名相同。

输出格式

程序必须向标准输出写入一行,包含一个 $1$ 到 $N$ 之间的整数:你开始比赛的靶位编号。

子任务

对于部分测试点,总分 $60$ 分,满足 $N \le 5,000$。 此外,对于部分测试点,总分 $20$ 分,满足 $N \le 200$。

样例

样例输入 1

4 8
7
4
2
6
5
8
1
3

样例输出 1

3

说明 1

你是倒数第二弱的选手。如果你从 $1$ 号靶位开始,你将移动到 $4$ 号靶位并一直待到比赛结束。如果你从 $2$ 号或 $4$ 号靶位开始,你将在整个比赛期间一直待在原处。如果你从 $3$ 号靶位开始,你将击败最弱的选手,然后移动到 $2$ 号靶位并一直待在那里。

样例输入 2

4 9
2
1
5
8
3
4
7
6

样例输出 2

2

说明 2

你是第二强的选手。最强的选手已经在 $1$ 号靶位,并将全程待在那里。因此,无论你从哪里开始,你总是会从你的靶位出发,反复经过从 $4$ 到 $1$ 的所有靶位。为了在 $9$ 轮转换后最终停在 $1$ 号靶位,你必须从 $2$ 号靶位开始。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.