题目
题解思路
不能被蚂蚁会掉头误导了,掉头其实可以理解为两方还是往那边走,仔细想想是不是就相当于换了个人还是往那边走!因为是同时出发,所以消耗的时间也是一样的!所以就相当于没有区别的!
这样只需对每个位置的点求一下到两边的时间,每次更新答案即可!
int m,n,mans = 0 ,ans = 0;
cin>>m>>n;
for (int i = 1 ;i <= n ; i++ )
{
int t;
cin>>t;
ans = max(ans,min(t,abs(m-t)));
mans = max(mans,max(t,abs(m-t)));
}
AC代码
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main ()
{
ios_base::sync_with_stdio(0);
int t;
cin>>t;
while(t--)
{
int m,n,mans = 0 ,ans = 0;
cin>>m>>n;
for (int i = 1 ;i <= n ; i++ )
{
int t;
cin>>t;
ans = max(ans,min(t,abs(m-t)));
mans = max(mans,max(t,abs(m-t)));
}
cout<<ans<<" "<<mans<<"\n";
}
return 0;
}