本文主要是介绍浙大PAT 1046题 1046. Shortest Distance,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目由于数据量比较大,还是要想一下的,代码如下。
#include<stdio.h>
int arr[100005];
int sum[100005];
int main(){int i,j,n,m;scanf("%d",&n);sum[0]=0;for(i=1;i<=n;i++){scanf("%d",&arr[i]);sum[i]=sum[i-1]+arr[i];}scanf("%d",&m);int s,e,t;int ra,rb;for(i=0;i<m;i++){scanf("%d %d",&s,&e);if(s>e){t=s;s=e;e=t;}ra=sum[e-1]-sum[s-1];rb=sum[n]-ra;if(ra<rb) printf("%d\n",ra);else printf("%d\n",rb);}return 0;
}
这篇关于浙大PAT 1046题 1046. Shortest Distance的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!