6163: 小C的数组(array)
[Creator : ]
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$ 数组所有元素的和即可。
一次,小 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$。
第二行 $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$ 中产生。
对于 $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$。