#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
#define MAXN 10005
int c[MAXN];
int a[MAXN];
int n;
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int p)//对x位置增加p;
{
while(x<=n)
{
c[x]+=p;
x+=lowbit(x);
}
}
int getsum(int x)//1-x的和 ;
{
int res=0;
while(x)
{
res+=c[x];
x-=lowbit(x);
}
return res;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
memset(c,0,sizeof(c));
for(int i=1;i<=n;i++)
{
add(i,a[i]);//构造树状数组
}
int l,r;
while(cin>>l>>r)
{
cout<<getsum(r)-getsum(l-1)<<endl;//输出区间l到r(闭区间)的和;
}
return 0;
}