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