首页 > 代码库 > 加强赛(二)E - Ants POJ - 1852
加强赛(二)E - Ants POJ - 1852
感谢我的学长对我的带领;该题思想来源于WArobot;
输入数据:
N(N组测试数据)
L (绳长)n(蚂蚁的个数)
接下来是n个数据(n个蚂蚁每个在绳子上距离绳子最左端的距离l)
该题给出每个蚂蚁的速度均为1cm/s,所以该问题无需考虑;
输出:
蚂蚁的最短掉落时间和最长的掉落时间;
掉落的最短时间:
找出每一只蚂蚁离最左端的距离和离最右端的距离的最小值再将这些数据比较,找出最大的,因为掉落的最短时间取决于最后一个掉落的蚂蚁的时间;
掉落的最长时间:
其实条件中的两只蚂蚁相遇往回反的条件可以忽略,只需找出每一只蚂蚁离最左端的距离和离最右端的距离的最大值再将这些数据比较,找出最大的;
代码如下:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
const int M=1e6+10;
int s[M];
int main(){
int t,L,n,s_max,s_min;
cin>>t;
while(t--){
scanf("%d%d",&L,&n);
s_min=s_max=-M;
for(int i=0;i<n;i++){
scanf("%d",&s[i]);
s_min=max(s_min,min(s[i],L-s[i]));
s_max=max(s_max,max(s[i],L-s[i]));
}
printf("%d %d\n",s_min,s_max);
}
return 0;
}
加强赛(二)E - Ants POJ - 1852
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。