#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;int friendDis[100010] = {0};//邻居节点间的距离
int withStDis[100010] = {0};//和第一个结点的距离 --本题的题眼,空间换时间的典例int main(){int dis_num,test_num,withst_dis = 0;scanf("%d",&dis_num);for(int i=1;i<=dis_num;i++){scanf("%d",&friendDis[i]);withst_dis += friendDis[i];withStDis[i+1] = withst_dis;}scanf("%d",&test_num);int exitA,exitB;while(test_num--){scanf("%d %d",&exitA,&exitB);if(exitA>exitB){//默认出口A的序号小于B swap(exitA,exitB);}//现在要做的事情是把两边的距离都算出来,进行比较int one_dis = 0,ana_dis = 0;one_dis = withStDis[exitB] - withStDis[exitA];ana_dis = withst_dis - one_dis;printf("%d\n",one_dis<ana_dis?one_dis:ana_dis);}return 0;
}
int withStDis[100010] = {0};//和第一个结点的距离 --本题的题眼,空间换时间的典例