#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen("in.txt","r",stdin);
int n;cin>>n;
int a[100010]={};int sum=0;
int b[100010]={};
for(int i=1;i<=n;i++){
cin>>a[i];sum+=a[i];
if(i!=n)
b[i+1]=sum;
else
b[1]=0;
}
int k;cin>>k;
for(int i=0;i<k;i++){
int start,end;
cin>>start>>end;
if(start>end){
int temp=start;
start=end;
end=temp;
}
int minsum=0;
minsum=min(b[end]-b[start],sum-(b[end]-b[start]));
printf("%d\n",minsum);
}
}
本文介绍了一个使用C++解决区间求和问题的代码示例。通过预先计算累积和,该程序能够快速响应多个查询,找出指定区间的最小可能和,即使区间跨越数组边界。代码展示了如何读取输入、处理数据并输出结果,适用于算法竞赛和数据处理任务。
692

被折叠的 条评论
为什么被折叠?



