#if 0
n只蚂蚁以每秒1cm的速度在长度为L的竿子上爬行,当蚂蚁爬到竿子的端点时就会掉落,由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反方向爬回去,
对于每只蚂蚁,我们知道它距离竿子左端的距离Xi,但是不知道它当前的朝向,请计算所有蚂蚁落下竿子所需要的最短时间和最长时间
#endif
#include <stdio.h>
#include <stdlib.h>
int Solve(int *Array,int n ,int L);
int Get_min(int x1,int x2);
int Get_max(int y1,int y2);
int Get_min(int x1,int x2)
{
return x1<x2?x1:x2;
}
int Get_max(int y1,int y2)
{
return y1<y2?y2:y1;
}
int Solve(int *Array,int n ,int L)
{
int i=0;
int maxtime=0,mintime=0;
int mindistance=0;
int maxdistance=0;
for(i=0;i<n;i++)
{
mindistance=Get_min(*(Array+i),L-*(Array+i));//第i只蚂蚁距离竿子的最短距离
mintime=Get_max(mindistance,mintime);
}
printf("The minimum time is %d\n",mintime);
for(i=0;i<n;i++)
{
maxdistance=Get_max(*(Array+i),L-*(Array+i));//第i只蚂蚁距离竿子的最长距离
maxtime=Get_max(maxdistance,maxtime);
}
printf("The maximum duration is %d\n",maxtime);
return 0;
}
int main()
{
int Pole_len=10;
int num=3;
int A[3]={2,6,7};
Solve(A,num,Pole_len);
return 0;
}
Ants
最新推荐文章于 2024-08-23 08:43:38 发布