zoj2376

来源:互联网 发布:tracert 端口 编辑:程序博客网 时间:2024/06/05 10:09

题目大意:

有1队蚂蚁在一个lcm的山洞里,移动速度是1cm/s。当走到洞的任何一段,蚂蚁就脱离洞了。当两个蚂蚁按相反方向走,碰面时,立马掉头。现在我们给出蚂蚁的初始位置,但我们不知道蚂蚁走动的方向。你的任务是算出蚂蚁最早和最晚脱离洞的时间。

解题思路:

以洞的中点为界,最早的话,肯定蚂蚁朝着离自己最近的一端走。至于相反方向,我们可以看成蚂蚁换了个身份继续向前走。最晚的话,我们肯定蚂蚁朝着离自己最远的一端走。

代码如下:

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int main(){  int n,a,x,y,min,max,i,k,l;  scanf("%d",&n);  while(n--)  {    scanf("%d%d",&x,&y);    scanf("%d",&a);    min=abs(a-x/2);max=abs(a-x/2);    k=a;l=a;    for(i=1;i<y;i++)    {       scanf("%d",&a);       if(min>abs(a-x/2))       {         min=abs(a-x/2);         k=a;       }         if(max<abs(a-x/2))       {         max=abs(a-x/2);         l=a;       }     }    printf("%d %d",k<x-k?k:x-k,l>x-l?l:x-l);    if(n)     printf("\n");  }  return 0;}
0 0
原创粉丝点击