[SDOI2016]生成魔咒
题号:NC20388
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示。例如可以将魔咒字符 1、2 拼凑起来形成一个魔咒串 [1,2]。 
 一个魔咒串 S 的非空字串被称为魔咒串 S 的生成魔咒。 例如 S=[1,2,1] 时,它的生成魔咒有 [1]、[2]、[1,2]、[2,1]、[1,2,1] 五种。S=[1,1,1] 时,它的生成魔咒有 [1]、 [1,1]、[1,1,1] 三种。
最初 S 为空串。共进行 n 次操作,每次操作是在 S 的结尾加入一个魔咒字符。每次操作后都需要求出,当前的魔咒串 S 共有多少种生成魔咒。

输入描述:

第一行一个整数n。
第二行n个数,第i个数表示第i次操作加入的魔咒字符。1 ≤ n ≤ 100000。
用来表示魔咒字符的数字x满足1≤x≤10^9

输出描述:

输出n行,每行一个数。第i行的数表示第i次操作后S的生成魔咒数量
示例1

输入

复制
7
1 2 3 3 3 1 2

输出

复制
1
3
6
9
12
17
22

备注:

对于10%的数据,保证 
对于30%的数据,保证
对于60%的数据,保证
对于100%的数据,保证