【问题描述】
在一段即将被水淹没的很窄通道里有很多蚂蚁,蚂蚁都在以相同的速度(1单位长度/秒)移动,它们会在不同的位置上排成一列,但蚂蚁的开始反向有向左的也有向右的。
当两个蚂蚁以相反的方向在太窄而无法通过的通道中相遇时,蚂蚁会转头调转方向继续移动,速度不变。
问蚂蚁需要多少时间才能全部跑出这个通道?
【输入格式】
第一行2个正整数L和N。分别表示通道的长度和蚂蚁的个数。
第二行N个非0整数,如果数是正数,数的值表示蚂蚁距离左通道端点的位置,蚂蚁开始方向向左。如果数是负数,数的绝对值表示蚂蚁距离右通道端点的位置,蚂蚁开始方向向右。
【输出格式】
一个整数。
- 两只蚂蚁遇见时,可以理解成它们互相穿过
- 每只蚂蚁爬到出口所需要的时间是 它到出口的路程的绝对值(一秒走一个单位)
- 总共需要的时间是所有蚂蚁各自需要的时间的最大值
#include<bits/stdc++.h>
using namespace std;
int main() {
int l,n;
cin>>l>>n;
int ans=INT_MIN;
for(int i=1; i<=n; i++) {
int k;
cin>>k;
ans=max(ans,abs(k));
}
cout<<ans;
return 0;
}
EOF
标签:逃离,蚂蚁,int,ant,ans,数是,通道 From: https://www.cnblogs.com/algorithm-hu/p/17997998