/*
长胖
描述
wh学长非常喜欢巧克力,有一天,wyx给了他n个巧克力魔盒,每个魔盒里都有无穷个巧克力,每个盒子里的巧克力都有固定的肥胖值(为正表示增加,为负表示减少)。
为了让wh更加肥胖,wyx列出了m个方案:每个方案中都有一个L 、R,wh会从第L个盒子到第R个盒子这连续的R - L + 1 个盒子中,每个盒子里拿出一个巧克力吃掉,并增加相对应的肥胖值。
每个方案最多只能实现一次,当然也可以不实现,那么,wyx可以让wh长胖多少呢?
输入
第一行,一个整数n,表示有n个魔盒 (n <= 100000)
第二行包含n个整数,表示从下标为1到n的盒子的肥胖值(-100000<= wi <= 100000)
第三行包含一个整数m表示方案数 (m <= 100000)
接下来m行,每行两个整数L, R (1 <= L, R <= n)
输出
输出一行,包含一个整数表示最大的肥胖值
输入样例 1
5
1 -2 3 -4 5
2
1 5
1 2
输出样例 1
3
提示
第一个方案从1到5可得到 3的肥胖值,第二个可以得到 -1的肥胖值(wyx当然不会让wh选择这个方案),所以最大可得到3的肥胖值。
*/
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
long long N=223333;
long long A[223333]={0},B[223333]={0};
int main(){
ll n,m,a,b,k=0;
cin>>n;
A[0]=0;
for(int i=1;i<=n;i++){
cin>>A[i];
A[i]=A[i-1]+A[i]; //算法核心,存储前面的巧克力之和
}
cin>>m;
ll t=m;
while(m--){
cin>>a>>b;
B[k++]=A[b]-A[a-1];//求出a到b之间巧克力热量值
}
ll fat=0;
for(int j=0;j<t;j++){
if(B[j]>0) fat=fat+B[j];
}
cout<<fat;
return 0;
}