#P15559. [egoi2025]礼品盒

[egoi2025]礼品盒

题目描述

今年的 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

3 6
1 0 2 2 1 0

0 2

4 8
0 2 0 1 2 1 3 3

2 6

3 6
1 1 2 0 1 0

0 3

4 6
0 1 2 0 3 2

2 3

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

1 9

数据范围与提示

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

  • 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 无附加限制