一.题意
题目大意:很多的蚂蚁都在长度为L(cm)的膀子上爬行,它们的速度都是1cm/s,到了棒子终端的时候,蚂蚁就会掉下去。如果在爬行途中遇到其他蚂蚁,两只蚂蚁的方向都会逆转。已知蚂蚁在棒子的最初位置坐标,但是我们不知道他们会往哪一个方向爬。请求出所有蚂蚁掉下去的最短时间和最长时间。
二.解法
为了思考最长时间,考虑相遇时发生什么(相遇可以看作交错而过),不论最长还是最短,对每一只检查一次就可以了.
int L,N,X[MXN]; void solve(){ int minT=0; for(int i=0;i<N;++i) minT=max(minT,min(X[i],L-X[i])); int maxT=0; for(int i=0;i<N;++i) maxT=max(maxT,max(X[i],L-X[i])); printf("%d %d\n",minT,maxT); }