atcoder#ARC099D. [ARC099F] Eating Symbols Hard

[ARC099F] Eating Symbols Hard

配点 : 12001200

問題文

高橋君は,いつも頭の中に,長さ 2×109+12 \times 10^9 + 1 の整数列 $A = (A_{-10^9}, A_{-10^9 + 1}, ..., A_{10^9 - 1}, A_{10^9})$ と,整数 PP を思い浮かべています.

はじめ,高橋君が思い浮かべている整数列 AA のすべての要素は 00 です. また,整数 PP の値は 00 です.

高橋君は,+, -, >, < の記号を食べると,それぞれ次のように思い浮かべている整数列 AA,整数 PP が変化します:

  • + を食べた場合,APA_P の値が 11 大きくなる.
  • - を食べた場合,APA_P の値が 11 小さくなる.
  • > を食べた場合,PP の値が 11 大きくなる.
  • < を食べた場合,PP の値が 11 小さくなる.

高橋君は,長さ NN の文字列 SS を持っています.SS の各文字は +, -, >, < の記号のいずれかです. 高橋君は,1ijN1 \leq i \leq j \leq N なる整数の組 (i,j)(i, j) を選んで,SSi,i+1,...,ji, i+1, ..., j 文字目の記号をこの順に食べました. 高橋君が記号を食べ終わった後,高橋君が思い浮かべている整数列 AA は,高橋君が SS のすべての記号を 11 文字目から順に食べた場合と等しくなったといいます. このような (i,j)(i, j) として考えられるものは何通りあるか求めてください.

制約

  • 1N2500001 \leq N \leq 250000
  • S=N|S| = N
  • SS の各文字は +, -, >, < のいずれか

入力

入力は以下の形式で標準入力から与えられる.

NN

SS

出力

答えを出力せよ.

5
+>+<-
3

高橋君が SS のすべての記号を食べた場合,A1=1A_1 = 1 で,AA の他の要素はすべて 00 になります. AA がこれと等しくなるような (i,j)(i, j) は次の通りです:

  • (1,5)(1, 5)
  • (2,3)(2, 3)
  • (2,4)(2, 4)
5
+>+-<
5

高橋君が SS のすべての記号を食べた場合と PP が異なっていてもかまわないことに注意してください.

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