传统题 文件IO:absolute 1000ms 256MiB

学习绝对值

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

鸡尾酒的丹丹学了三个月 C++ 基础,今天终于学到了条件分支 if 里面的逻辑运算 && 和 ||,经过一段时间的学习之后,鸡尾酒问大家 || 是什么意思,大家异口同声:绝对值符号。

看到大家这么喜欢绝对值,于是鸡尾酒给了大家一个简单的问题:给定 nn 个数字,数字只可能是 2112-2、-1、1、2 四个中的一个。请问有多少个子数组满足其最大值的绝对值等于最小值的绝对值?

丹丹看到题目后连忙提问:“老师,你说的第一个数字这个 2 前面的横杠是啥?”

看来丹丹是做不出来了,你可以帮帮他吗?

备注:子数组指的是连续的一段。

输入格式

第一行输入一个正整数 nn,接下来一行输入 nn 个数字,仅可能是 2112-2、-1、1、2 中的一个。

输出格式

输出一行一个整数表示答案。

样例

4
-2 -1 1 2
6

【说明】

[-2]、[-1]、[1]、[2]、[-1,1]、[-2,-1,1,2] 这六个子数组满足最大值和最小值的绝对值相等。

1
1
1
5
1 -1 2 -1 1
7

数据范围与提示

本题共有 10 个测试点

对于 1-2 测试点,有 n5000n \leq 5000

对于 3 测试点,有 n50000n \leq 50000

对于 4 测试点,所有数字的绝对值相等。1n500001 \leq n \leq 50000

对于 5 测试点,所有数字均为正整数。1n1000001 \leq n \leq 100000

对于 6-7 测试点,没有 -2 这个数字,1n1000001 \leq n \leq 100000

对于 8 测试点,1n1000001 \leq n \leq 100000

对于 9-10 测试点,1n5000001 \leq n \leq 500000

高翊凯1

未认领
状态
已结束
题目
12
开始时间
2024-10-3 0:00
截止时间
2024-10-11 23:59
可延期
24 小时