开始以为这题挺难,但AC率这么高应该不难。。不用考虑中间的ants情况,最大时间就是两端ants往中间相遇后再返回的时间,最小时间好算。
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int test = sc.nextInt();
for (int i = 0; i < test; i++)
{
int hole = sc.nextInt();
int n = sc.nextInt();
int min = hole, max = 0, least = 0;
for (int j = 0; j < n; j++)
{
int num = sc.nextInt();
if (num < min)
min = num;
if (num > max)
max = num;
int time = num < hole - num ? num : hole - num;
if (time > least)
least = time;
}
double meet = (max + min) / 2.0;
double most = (meet > hole - meet ? meet : hole - meet)
+ (max - min) / 2.0;
System.out.format("%d %d\n", least, (int) most);
}
}
}