Description
一支蚂蚁军队在长度为L厘米的横竿上走,每只蚂蚁的速度恒定,为1厘米/秒。当一只行走的蚂蚁到达模竿终点的时候,它就立即掉了下去;当两只蚂蚁相遇的时候,它们就调头,并开始往相反的方向走。我们知道蚂蚁在模竿上的原来的位置,但不知道蚂蚁行走的方向。请计算所有蚂蚁从模竿上掉下去的最早可能时间和最晚可能的时间。
Input
输入的第1行为样例数。每个样例首先给出2个整数,表示模竿的长度和蚂蚁的数量n。接下来的n个数表示蚂蚁在模竿上的位置(从左开始算起,n<1 000 000)。
Ouput
每个案例输出蚂蚁掉下去的最早时间和最晚时间。
Sample Input
2
10 3
2 6 7
214 7
11 12 7 13 176 23 191
Sample Output
4 8
38 207
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
//最长时间就是离端点最近的蚂蚁爬到反向端点
int T = cin.nextInt();
while(T-->0){
int m = cin.nextInt();
int n = cin.nextInt();
int b = 0;
int c = 0;
int a = 0;
for(int i=1;i<=n;i++){
a = cin.nextInt();
a = Math.max(a, m-a);//每个蚂蚁的最长时间
b = Math.max(a, b);//所有蚂蚁中的最长时间
c = Math.max(c, m-a);//每只蚂蚁减去最长时间 就是距离最短 后求最大值(所有蚂蚁掉下去)
}
System.out.println(c+" "+b);
}
}
cin.close();
}
}