#P11406. [RMI 2020] 零和 / Sum Zero

[RMI 2020] 零和 / Sum Zero

背景

译自 8th Romanian Master of Informatics, RMI 2020 D2T1。0.6s,20M\texttt{0.6s,\textcolor{red}{20M}}。

请注意本题非同寻常的空间限制。

题目描述

给定长度为 NN 的数列 c1,⋯ ,cNc_1,\cdots,c_N。

QQ 次询问给定 L,RL,R,求出最多能够选出多少个 [L,R][L,R] 的不交子区间,满足每个子区间内 cic_i 的和均为 00。

输入格式

第一行,一个正整数 NN。

第二行,NN 个整数 c1,⋯ ,cNc_1,\cdots,c_N。

第三行,一个正整数 QQ。

接下来 QQ 行,每行两个正整数 L,RL,R。

输出格式

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

10
1 2 -3 0 1 -4 3 2 -1 1
3
1 10
1 5
2 9
4
2
2

提示

对于 100%100\% 的数据,保证:

  • 1≤N,Q≤4×1051\le N,Q\le 4\times 10^5;
  • −109≤ci≤109-10^9\le c_i\le 10^9;
  • 1≤L≤R≤N1\le L\le R\le N。
子任务编号 N,Q≤N,Q\le 得分
1 1 5×103 5\times 10^3 2222
2 2 105 10^5 3939
3 3 4×105 4\times 10^5