poj 1852

来源:互联网 发布:gif编辑文字软件 编辑:程序博客网 时间:2024/06/12 22:23
#include <stdio.h>#include <stdlib.h>int a[1000010];int max(int x,int y){    if(x>=y) return x;    else return y;}int min(int x,int y){    if(x>y) return y;    else return x;}int main(){    int cases, lenth, n;    int i, j;    int maxt=0, mint=0;    scanf("%d",&cases);    for(i=0;i<cases;i++)    {        mint=0;        maxt=0;        scanf("%d",&lenth);        scanf("%d",&n);        for(j=0;j<n;j++)            scanf("%d",&a[j]);        for(j=0;j<n;j++)            mint=max(mint,min(a[j],lenth-a[j]));        for(j=0;j<n;j++)            maxt=max(maxt,max(a[j],lenth-a[j]));        printf("%d %d\n",mint,maxt);    }    return 0;}

其实,这个程序思路很简单,晚上昏昏沉沉写了这个很难看的代码。

主要就是求最大值的时候,我们发现相向走的蚂蚁碰到后,再转身,因为蚂蚁长得一样,我们可以把它们当作穿过去了,也就是不需要考虑那么多,只要找到ans=max(ans,max(a[j],lenth-a[j]))就可以了。


0 0
原创粉丝点击