#include<bits/stdc++.h>
using namespace std;
const int maxN = 4e5 + 5, lg = __lg(400000) / __lg(2) + 1;
int n, q, c[maxN];
int lca[maxN][lg + 5];
int sum[maxN];
int ps[maxN];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i ++){
cin >> c[i];
sum[i] = sum[i - 1] + c[i];
}
map<int, int> cnt;
ps[n + 1] = 1e9;
memset(lca, 0x3f, sizeof(lca));
for (int i = n; i >= 1; i --){
cnt[sum[i]] = i;
ps[i] = cnt[sum[i - 1]];
if (ps[i] == 0) ps[i] = 1e9;
ps[i] = min(ps[i + 1], ps[i]);
// cout << ps[i] << '\n';
}
for (int i = n; i >= 1; i --){
lca[i][0] = ps[i];
for (int j = 1; j <= lg; j ++){
if (lca[i][j - 1] <= n) lca[i][j] = lca[lca[i][j - 1] + 1][j - 1];
}
}
cin >> q;
for (int i = 1; i <= q; i ++){
int l, r; cin >> l >> r;
int res = 0;
for (int j = lg; j >= 0; j --){
if (lca[l][j] > r) continue;
l = lca[l][j] + 1;
res += (1 << j);
}
cout << res << '\n';
}
}