题目描述
题目译自 Ukrainian Olympiads in Informatics 2023 Stage 4 Day1 T3. Масив і додавання на відрізку
给定一个长度为 n 的整数数组 a。
你可以通过加法操作来修改数组。为了执行一次加法操作,需要按照以下三个步骤进行:
- 选择一个任意整数 x;
- 选择数组的一个任意子区间 [l,r];
- 将选定子区间内的每个元素加上 x(即对 l≤i≤r 执行操作 ai←(ai+x))。
找出使数组 a 的所有元素两两不同所需的最小加法操作次数。
输入格式
输入的第一行包含一个整数 n (1≤n≤2⋅105),表示数组的长度。
第二行包含 n 个整数 a1,a2,…,an (1≤ai≤109),表示数组的元素。
输出格式
输出一个整数,表示使数组 a 的所有元素两两不同所需的最小加法操作次数。
3
1 2 3
0
在第一个样例中,数组 a 的所有元素已经是两两不同的。
5
2 3 2 3 2
2
在第二个样例中,通过执行两次加法操作,参数分别为 x=−3,l=1,r=2 和 x=−1,l=1,r=3,数组 a 变为 [−2,−1,1,3,2]。
9
2 3 1 1 3 2 1 3 3
2
在第三个样例中,通过执行两次加法操作,参数分别为 x=−3,l=4,r=8 和 x=−10,l=7,r=9,数组 a 变为 [2,3,1,−2,0,−1,−12,−10,−7]。
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 |
分值 |
附加限制 |
| 1 |
9 |
数组 a 的所有元素均为 1 |
| 2 |
15 |
1≤ai≤2(对于 1≤i≤n);ai≤ai+1(对于 1≤i<n) |
| 3 |
14 |
n≤8 |
| 4 |
17 |
a1=an |
| 5 |
12 |
n≤2000 |
| 6 |
12 |
1≤ai≤100(对于 1≤i≤n) |
| 7 |
21 |
无附加限制 |