uva 10714 Ants

来源:互联网 发布:java疯狂讲义版本 编辑:程序博客网 时间:2024/06/07 19:46

题意:有一些蜗牛在一个已知长度的木杆上L(m),再给定这些蜗牛的位置,其朝向不定,蜗牛可以沿着朝向以1 cm/s的速度前行,但是一旦其中两个蜗牛相遇各自会沿着反方向继续前行,求所有蜗牛全部掉下来所需的最长与最短时间.

思路:我们可以把两只蜗牛相遇、反向过程看作成两只蜗牛同时穿过了对方,虽然与实际相比此时此地换成了不同蜗牛,但这与题目所求的最长与最短距离没有影响。

#include<stdio.h>#include<math.h>#include<stdlib.h>int a[2001010];int  main(){int i,j,n,m,t,pos;int t1=1000010;int t2=-1;double k,min,max;scanf("%d",&t);while(t--){min=2000000;t1=1000010;t2=-1;scanf("%d%d",&n,&m);k=(double)n/2;for(i=0;i<m;i++){scanf("%d",&a[i]);if(t1>a[i])t1=a[i];if(t2<a[i])t2=a[i];if(min>fabs(k-a[i])){min=fabs(k-a[i]);pos=i;}}//printf("%d %d\n",t1,t2);min=a[pos];if(a[pos]>=k){min=n-a[pos];}max=t2;//printf("%.lf ",max);if(t2<n-t1)max=n-t1;printf("%.0lf %.0lf\n",min,max);}}


0 0
原创粉丝点击