加強賽(二)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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章