洛谷 UVA10714 Ants
思路:首先我们考虑到,两只ants相遇时向反方向爬回,相当于两只ants交错而过继续前进。 由此,时间最短的情况为每只ants向最近端点爬去;时间最长的情况为每只ants向距离最远的端点爬去。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6;
int x[maxn],n,L,m;
int main(){
cin>>m;//m表示数据组数
while(m--){
cin>>L>>n;
for(int i=0;i<n;i++) cin>>x[i];
int min_t=0;
for(int i=0;i<n;i++)
min_t=max(min_t,min(x[i],L-x[i]));//记录ants离最近端点的距离
int max_t=0;
for(int i=0;i<n;i++)
max_t=max(max_t,max(x[i],L-x[i]));//多使用库函数max,min
cout<<min_t<<' '<<max_t<<endl;
}
return 0;
}