#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5+5;
int a[N], pre[N], same[N], nxt[N];
array<int, 2> up[N][20];
// 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;
for(int i=0; i<=n; i++) {
same[i] = last[pre[i]];
last[pre[i]] = i;
}
for(int i=0; i<=n; i++){
nxt[i] = n+1;
for(int j=i+1; j<=n; j++){
if(same[j] >= i) {nxt[i] = j; break;}
}
}
for(int i=n; i>=0; i--){
if(nxt[i] <= n) up[i][0] = {1, nxt[i]};
else up[i][0] = {0, n+1};
for(int j=1; j<20; j++){
if(up[i][j-1][1] > n){
up[i][j] = up[i][j-1];
continue;
}
up[i][j][0] = up[i][j-1][0] + up[up[i][j-1][1]][j-1][0];
up[i][j][1] = up[up[i][j-1][1]][j-1][1];
}
}
int q; cin >> q;
while(q--){
int l, r; cin >> l >> r; l--;
int ans = 0;
for(int b=19; b>=0; b--){
if(r<l) break;
if(up[l][b][1] > r) continue;
ans += 1ll<<b;
l = up[l][b][1];
}
cout << ans << '\n';
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
}