学习笔记-POJ-1852蚂蚁问题

2019-04-14 21:15发布

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(); } }