学习笔记-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();
	}

}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值