to PAT#include<iostream>
#include<algorithm>
#include<map>
#include<string>
#include<vector>
using namespace std;
int main()
{
int path[100010],left[100010]={0};//数组尽量大一点
int num,sum=0;
cin>>num;
for(int i=1;i<=num;i++)
{cin>>path[i];
left[i]=left[i-1]+path[i];
sum+=path[i];
}
int m;
cin>>m;
int result[100010];
for(int i=0;i<m;i++)
{ int num1,num2;
cin>>num1>>num2;
if(num2<num1)
swap(num2,num1);
result[i]=min(sum-left[num2-1]+left[num1-1],left[num2-1]-left[num1-1]);
}
for(int i=0;i<m;i++)
{
cout<<result[i];
if(i<m-1) cout<<endl;
}
return 0;
}
#include<algorithm>
#include<map>
#include<string>
#include<vector>
using namespace std;
int main()
{
int path[100010],left[100010]={0};//数组尽量大一点
int num,sum=0;
cin>>num;
for(int i=1;i<=num;i++)
{cin>>path[i];
left[i]=left[i-1]+path[i];
sum+=path[i];
}
int m;
cin>>m;
int result[100010];
for(int i=0;i<m;i++)
{ int num1,num2;
cin>>num1>>num2;
if(num2<num1)
swap(num2,num1);
result[i]=min(sum-left[num2-1]+left[num1-1],left[num2-1]-left[num1-1]);
}
for(int i=0;i<m;i++)
{
cout<<result[i];
if(i<m-1) cout<<endl;
}
return 0;
}