3598: 区间乘积的符号
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:6
解决:4
题目描述
小杨在学习数组的区间运算。他有一个长度为 的整数序列 。
他将进行 次查询,每次查询给出一个区间 (包含端点),他想知道:
这个区间内所有数的乘积的符号是正、负还是零?
请你帮助他回答每个查询。
-
如果乘积大于 0,输出
1 -
如果乘积小于 0,输出
-1 -
如果乘积等于 0(即区间内至少有一个 0),输出
0
⚠️ 注意:
- 你不需要计算实际乘积(可能非常大)
- 只需判断符号
- 所有查询独立处理
输入
- 第一行:两个整数 和 (),表示序列长度和查询次数
- 第二行: 个整数 ()
- 接下来 行:每行两个整数 和 (),表示一个查询区间(1-indexed)
输出
-
对每个查询,输出一行一个整数:
1、-1或0,表示该区间乘积的符号
样例输入 复制
6 3
2 -3 4 0 -1 5
1 3
4 4
2 6
样例输出 复制
-1
0
0
提示
| 变量 | 范围 | 说明 |
|---|---|---|
| 数据量大,需高效算法 | ||
| 数值小,但乘积可能极大 | ||
| 查询区间合法 |