1. 程式人生 > >學習筆記-POJ-1852螞蟻問題

學習筆記-POJ-1852螞蟻問題

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

}