Description
给定一个长度为 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
5
2 3 2 3 2
2
9
2 3 1 1 3 2 1 3 3
2
Hint
在第一个样例中,数组 a 的所有元素已经是两两不同的。
在第二个样例中,应用两次加法操作,参数分别为 x=−3、l=1、r=2 和 x=−1、l=1、r=3 后,数组 a 变为 [−2,−1,1,3,2]。
在第三个样例中,应用两次加法操作,参数分别为 x=−3、l=4、r=8 和 x=−10、l=7、r=9 后,数组 a 变为 [2,3,1,−2,0,−1,−12,−10,−7]。
评分标准
- (9 分):数组 a 的所有元素均为 1。
- (15 分):对于 1≤i≤n,1≤ai≤2;对于 1≤i<n,ai≤ai+1。
- (14 分):n≤8。
- (17 分):a1=an。
- (12 分):n≤2000。
- (12 分):对于 1≤i≤n,1≤ai≤100。
- (21 分):无额外限制。
翻译由 DeepSeek V3 完成