AcWing 1530. 最短距离
原题链接
简单
作者:
adamXu
,
2020-07-10 23:01:41
,
所有人可见
,
阅读 867
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 100005;
int main()
{
int n;
int sum=0,dis[MAXN];//dis 为1到i+1的距离
cin >> n;
for(int i = 1;i <= n;i++)
{
int a;
cin >> a;
sum += a;
dis[i] = sum;
}
int m;
cin >> m;
while(m--)
{
int left,right;
cin >> left >> right;
if(left > right) swap(left,right);
int temp = dis[right-1] - dis[left-1]; //注意,是-1,因为记录的是+1的。
cout << min(temp,sum - temp) <<endl;
}
return 0;
}