每天都在刷简单题。
遇到的问题:
1.一开始想到用sum记录回环了,但是没想到直接记录宿命的的数值,最后一个点过不去。
2.改了之后边界点问题没处理好,因为如果数组从0开始记录的话,出现从1开始的数,就没法用两点减法了,0位必须为0。。。
#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
int D[100100]={};
int C[100100]={};
int main(){
int N,M,sum=0,dis;
int a[2];
scanf("%d",&N);
for(int i=1;i<=N;i++){
scanf("%d",C+i);
sum+=C[i];
D[i]=sum;
}
scanf("%d",&M);
for(int i=1;i<=M;i++){
scanf("%d %d",a,a+1);
if(a[0]>a[1]) swap(a[0],a[1]);
dis=D[a[1]-1]-D[a[0]-1];
printf("%d\n",dis<sum-dis ? dis:sum-dis);
}
return 0;
}