做BFS蚂蚁找家那道题,突然想起来前边beginner problem里还有道蚂蚁题放过去了,就又去看了看,我靠,果然是到水题啊!!!最开始时只会算最小时间,最大时间感觉很麻烦。。。现在又一想:
就算碰头了,那么两边还是各有一只蚂蚁再走,这不相当于没碰头啊!!!!天!!!!!!!!!!所以只需要找出距离断点最远的那只蚂蚁就可以了、。。。
#include<stdio.h>
#include<math.h>
int main()
{
int a,t,len,num,max,min,i,p1,p2,t1,q;
scanf("%d",&t);
while(t--)
{
scanf("%d%d",&len,&num);
max=0;
min=q=2000000;
for(i=0;i<num;i++)
{
scanf("%d",&a);
t1=len-a;
p1=(t1>a)?t1:a;
p2=abs(len/2-a);
if(p1>max)
max=p1;
if(p2<q)
{
q=p2;
if(a>len/2)
min=len-a;
else
min=a;
}
}
printf("%d %d\n",min,max);
}
return 0;
}