#HK5320. 「EGOI2025」礼品盒

「EGOI2025」礼品盒

题目描述

题目译自 European Girls' Olympiad in Informatics 2025 Day1 T1. Gift Boxes

今年的 EGOI 在波恩举办。组织者希望为比赛中的每个团队分发最多一个礼品盒,每个团队由编号 00T1T-1 表示。参赛者站在一排,但他们混杂在一起,同一团队的人可能并不站在一起。请注意,队列中至少有一个团队有超过一个人。队列中共有 NN 个人。第 ii 个人属于团队 aia_{i}。问题在于:每个团队最多只能收到一个礼品盒。为了确保分发过程顺利进行——并愿意因此让一些团队没有礼品——组织者希望在分发礼品时只暂停一次,跳过一些参赛者后再继续分发礼品盒。换句话说,他们将跳过一段连续的参赛者区间 [,r][\ell, r]

并非每个团队都需要收到礼品。尽管如此,组织者希望在确保没有团队收到两个或更多礼品的前提下,最大化收到礼品的团队数量,这等同于在此条件下最小化被跳过的参赛者数量。请帮助组织者决定何时暂停以及何时继续分发礼品,使得被跳过的参赛者尽可能少。

输入格式

第一行输入包含两个整数 TTNN,分别表示团队数量和队列中的参赛者数量。

第二行包含 NN 个整数 aia_{i},其中第 ii 个整数表示队列中位置 ii 的人所属的团队。保证每个从 00T1T-1 的整数至少出现一次。

输出格式

输出两个整数 \ellrr,其中 \ell 是被跳过的第一个人的编号,rr 是被跳过的最后一个人的编号。注意,\ellrr 的编号范围是从 00N1N-1。如果有多个解,输出任意一个即可。

4 5
1 3 0 2 3

1 1

有两种可能的输出:111 1 对应实心蓝色线,444 4 对应红色虚线,如下图所示。无论哪种方式,四个团队都收到礼品,且没有团队收到超过一个礼品。

img-0001.png

第一个样例满足子任务 1,3,5,61, 3, 5, 6 的限制条件。

3 6
1 0 2 2 1 0

0 2

同样,有两种可能的输出:020 2353 5,如下图所示。在两种情况下,三个团队都收到礼品。

img-0002.png

第二个样例满足子任务 2,3,4,5,62, 3, 4, 5, 6 的限制条件。

4 8
0 2 0 1 2 1 3 3

2 6

最优解是三个团队收到礼品,如下所示。编号为 0,1,70, 1, 7 的参赛者分别属于团队 0,2,30, 2, 3,他们收到礼品。这是唯一可能的解。

img-0003.png

第三个样例满足子任务 3,4,5,63, 4, 5, 6 的限制条件。

3 6
1 1 2 0 1 0

0 3

第四个样例满足子任务 3,5,63, 5, 6 的限制条件。同样有两种可能的输出:0 31 4,如下图所示。在两种情况下,只有两个团队(团队 00 和团队 11)收到礼品。团队 22 没有收到礼品,因为如果给团队 22 礼品,就必须给团队 0011 两个礼品,这是严格禁止的。

img-0004.png

4 6
0 1 2 0 3 2

2 3

唯一可能的答案是 232 3,如下图所示。四个团队都收到礼品。

img-0005.png

第五个样例满足子任务 3,5,63, 5, 6 的限制条件。

5 13
3 3 3 1 2 0 3 3 2 1 4 1 0

1 9

最多有四个团队(共五个团队)可以收到礼品,如下所示。编号为 0,10,11,120, 10, 11, 12 的参赛者分别属于团队 3,4,1,03, 4, 1, 0,他们收到礼品。这是唯一可能的解。

img-0006.png

第六个样例满足子任务 3,5,63, 5, 6 的限制条件。

数据范围与提示

对于所有输入数据,满足:

  • 1T<N5000001 \leq T < N \leq 500000
  • 0aiT10 \leq a_{i} \leq T-1

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 88 N=T+1N = T + 1,即只有一个团队出现两次
22 1111 N=2TN = 2 \cdot T,且每个团队在前半部分和后半部分各出现一次
33 1414 1T<N5001 \leq T < N \leq 500
44 2121 N=2TN = 2 \cdot T,且每个团队出现两次
55 2222 1T<N50001 \leq T < N \leq 5000
66 2424 无附加限制