A good idea excels everything.WA twice before finding my original idea is wrong,It's a good experience,I need to think sufficiently;
// 1046. Shortest Distance.cpp: 主项目文件。 #include "stdafx.h" #include <cstdio> const int N=100003; int dist[N],sDist[N]; int main() { int n,sum=0; scanf("%d",&n); sDist[0]=0; for(int i=1;i<=n;i++){ scanf("%d",dist+i); sDist[i]=sDist[i-1]+dist[i]; sum+=dist[i]; } int num; scanf("%d",&num); while(num--){ int u,v; scanf("%d%d",&u,&v); if(u>v){ int temp=u; u=v;v=temp; } int curSum=sDist[v-1]-sDist[u-1]; if(sum-curSum>curSum) printf("%d\n",curSum); else printf("%d\n",sum-curSum); } return 0; }