#include<bits/stdc++.h>
using namespace std;
#define ll int
const ll val=632;
ll n,q,l,r,nxt[400005],nxtcan[400005],pw[30];
map<long long,long long>mp;
long long c[400005];
int main(){
ios_base::sync_with_stdio(0);cin.tie(0);cin.tie(0);
cin>>n;
pw[0]=1;
nxt[n+1]=n+1;
for(int i=1;i<=18;i++){
pw[i]=pw[i-1]*2;
}
for(int i=1;i<=n;i++){
cin>>c[i];
c[i]+=c[i-1];
if (mp[c[i]]!=0)nxt[mp[c[i]]]=i;
if (c[i]==0 && mp[c[i]]==0)nxt[0]=i;
mp[c[i]]=i;
}
for(int i=0;i<=n;i++){
if (nxt[i]==0)nxt[i]=n+1;
}
for(int i=n-1;i>=0;i--){
nxt[i]=min(nxt[i],nxt[i+1]);
}
for(int i=0;i<=n;i++){
ll cur=i;
for(int j=1;j<=val;j++)cur=nxt[cur];
nxtcan[i]=cur;
}
cin>>q;
for(int query=1;query<=q;query++){
cin>>l>>r;
ll cur=l-1;
ll res=0;
while(true){
if (nxtcan[cur]<=r){
res+=val;
cur=nxtcan[cur];
}
else break;
}
while(true){
if (nxt[cur]<=r){
res++;
cur=nxt[cur];
}
else break;
}
cout<<res<<'\n';
}
}