Problem6163--小C的数组(array)

6163: 小C的数组(array)

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

小 C 终于成为一名萌新 OIer,最近他在学习数组。小 C 要练习数组。
一次,小 C 得到了一个长度为 $n$ 的数组 $a$。现在,对于每一个下标小 C 想找出比 $i$ 小且距离 $i$ 最近的下标 $j$,使得满足 $a_i \neq a_j$,如果不存在,则 $j=0$。记下标 $i$ 对应的答案 $f_i=j$,小 C 为了确保自己的程序正确,想让你来检查 $f$ 数组。
可你不能告诉他整个答案,你只需要告诉他 $f$ 数组所有元素的和即可。

Input

共两行,第一行一个正整数 $n$,表示数组长度;
第二行 $n$ 个正整数,第 $i$ 个表示 $a_i$。

Output

仅一行一个数,表示f数组所有元素的和。

Constraints

对于 $40\%$ 的数据:$n≤1000,\ 1≤a_i≤10$,且保证数据随机;
对于 $70\%$ 的数据:$n≤10^6,\ 1≤a_i≤10$,且保证数据随机;
对于 $90\%$ 的数据:$n≤10^6,\ 1≤a_i≤10$;
对于 $100\%$ 的数据:$n≤10^6,\ 1≤a_i≤1000$。
随机数据的生成方式如下:对于每一个 $a_i$,等概率地从 $1$ 到 $10$ 中产生。

Sample 1 Input

6
1 1 2 3 2 1

Sample 1 Output

14
$f_i$ 依次为 $(0,\ 0,\ 2,\ 3,\ 4,\ 5)$,总和为 $14$。

Sample 2 Input

12
3 3 3 3 2 2 2 2 4 4 1 1

Sample 2 Output

52
$f_i$ 依次为 $(0,\ 0,\ 0,\ 0,\ 4,\ 4,\ 4,\ 4,\ 8,\ 8,\ 10,\ 10)$,总和为 $52$。

HINT

题目来源:2020年合肥市青少年信息学科普日活动(初中组)

Source/Category