PAT 1046. Shortest Distance

来源:互联网 发布:saas数据库设计 编辑:程序博客网 时间:2024/05/17 08:20

题目http://pat.zju.edu.cn/contests/pat-a-practise/1046


思路:此题卡时间。用数组记录每一出口到第一个出口距离就好,避免多次计算。


代码

#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>using namespace std;int main(){int n,m,i;int len[100010],dis[100010];scanf("%d",&n);int sum=0;for(i=0;i<n;i++){scanf("%d",&dis[i]);len[i]=sum;sum+=dis[i];}scanf("%d",&m);int a,b;while(m--){   scanf("%d%d",&a,&b);   int t;   if(a>b)    {          t=a;  a=b;  b=t;   }   int ans=len[b-1]-len[a-1];   if(sum-ans<ans) ans=sum-ans;   printf("%d\n",ans);}return 0;}


0 0
原创粉丝点击