AT_arc099_d.[ARC099F] Eating Symbols Hard

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君脑海中总是浮现着一个长度为 2×109+12 \times 10^9 + 1 的整数序列 A=(A−109,A−109+1,…,A109−1,A109)A = (A_{-10^9}, A_{-10^9 + 1}, \ldots, 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,其中每个字符都是 +、-、> 或 < 之一。高桥君可以选择一组整数 (i,j)(i, j),满足 1≤i≤j≤N1 \leq i \leq j \leq N,然后依次吃下 SS 的第 ii 到第 jj 个字符。若吃完后脑海中的整数序列 AA 与高桥君从第 11 个字符开始顺序吃完 SS 的所有符号后得到的 AA 完全相同,则称该组 (i,j)(i, j) 是可行的。

请计算有多少组 (i,j)(i, j) 是可行的。

输入格式

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

NN SS

输出格式

请输出答案。

输入输出样例

  • 输入#1

    5
    +>+<-

    输出#1

    3
  • 输入#2

    5
    +>+-<

    输出#2

    5
  • 输入#3

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

    输出#3

    475

说明/提示

限制条件

  • 1≤N≤2500001 \leq N \leq 250000
  • ∣S∣=N|S| = N
  • SS 的每个字符都是 +、-、> 或 < 之一

样例解释 1

高桥君吃完 SS 的所有符号后,A1=1A_1 = 1,其余 AA 的元素全为 00。使 AA 与此相等的 (i,j)(i, j) 有以下几组:

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

样例解释 2

注意,即使 PP 与高桥君吃完 SS 的所有符号后得到的 PP 不同,也没有关系。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页