#arc099d. [arc099_d]Eating Symbols Hard

[arc099_d]Eating Symbols Hard

问题描述

在Takahashi的脑海中,始终存在一个长度为2×109+12 \times 10^9 + 1的整数序列:$A = (A_{-10^9}, A_{-10^9 + 1}, ..., A_{10^9 - 1}, A_{10^9})$,以及一个整数PP

最初,Takahashi心中的序列AA中的所有元素都为0,整数PP的值为0。

当Takahashi吃掉符号+-><时,序列AA和整数PP的变化如下:

  • 当他吃掉+时,APA_P的值增加1;
  • 当他吃掉-时,APA_P的值减少1;
  • 当他吃掉>时,PP的值增加1;
  • 当他吃掉<时,PP的值减少1。

Takahashi有一个长度为NN的字符串SSSS中的每个字符都是+-><中的一个符号。他选择了一对整数(i,j)(i, j),使得1ijN1 \leq i \leq j \leq N,并按照这个顺序吃掉了字符串SS中第ii个、(i+1)(i + 1)个、......、第jj个字符。我们听说,在他吃完后,序列AA的结果与他按顺序吃掉字符串SS中的所有符号完全一样。有多少种这样可能的(i,j)(i, j)对?

约束条件

  • 1N2500001 \leq N \leq 250000
  • S=N|S| = N
  • SS中的每个字符都是+-><

输入

从标准输入读入输入数据,格式如下:

NN SS

输出

输出答案。


示例输入 1

5
+>+<-

示例输出 1

3

如果Takahashi吃掉SS中的所有符号,A1=1A_1 = 1,其他所有元素都为0。导致序列AA相同的(i,j)(i, j)对如下所示:

  • (1,5)(1, 5)
  • (2,3)(2, 3)
  • (2,4)(2, 4)

示例输入 2

5
+>+-<

示例输出 2

5

注意,Takahashi吃完SS中的所有符号后,整数PP的值可能不同。


示例输入 3

48
-+><<><><><>>>+-<<>->>><<><<-+<>><+<<>+><-+->><<

示例输出 3

475