PAT甲级1046 Shortest Distance (20 分)
Posted ldudxy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT甲级1046 Shortest Distance (20 分)相关的知识,希望对你有一定的参考价值。
题意:
输入一个正整数N(<=1e5),代表出口的数量,接下来输入N个正整数表示当前出口到下一个出口的距离。接着输入一个正整数M(<=10000),代表询问的次数,每次询问输入两个出口的序号,输出他们之间的最小距离。
代码:
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int dis[100007],sum[100007];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
for(int i=1;i<=n;++i){
cin>>dis[i];
sum[i]=sum[i-1]+dis[i];
}
int q;
cin>>q;
for(int i=1;i<=q;++i){
int u,v;
cin>>u>>v;
if(v<u)
swap(u,v);
int x=sum[v-1]-sum[u-1];
int y=sum[n]-x;
cout<<min(x,y)<<"
";
}
return 0;
}
以上是关于PAT甲级1046 Shortest Distance (20 分)的主要内容,如果未能解决你的问题,请参考以下文章