#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 3e5+5;
int a[N], pre[N];
vector<array<int, 2>> range[N];
// for(int i=1; i<=n; i++)
void solve(){
int n; cin >> n;
for(int i=1; i<=n; i++) cin >> a[i], pre[i] = pre[i-1] + a[i];
map<int, int> last, dp;
for(int i=n; i>=1; i--){
last[pre[i]] = i;
dp[i] = dp[i+1];
range[i] = range[i+1];
if(last[pre[i-1]] and dp[i] < dp[last[pre[i-1]]+1] + 1) {
dp[i] = dp[last[pre[i-1]]+1] + 1;
range[i] = {{i, last[pre[i-1]]}};
for(auto j: range[last[pre[i-1]]+1]) range[i].push_back(j);
}
}
int q; cin >> q;
while(q--){
int l, r; cin >> l >> r;
unordered_map<int, int> last;
vector<int> dp(n+2);
for(int i=r; i>=l; i--){
last[pre[i]] = i;
dp[i] = dp[i+1];
if(last[pre[i-1]]) dp[i] = max(dp[i], dp[last[pre[i-1]]+1] + 1);
// cout << dp[i] << ' ';
}
cout << dp[l] << endl;
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}