全文预览

2018瑞安市第七届信息学奥赛(普及组)(C)

上传者:你的雨天 |  格式:doc  |  页数:7 |  大小:362KB

文档介绍
i];v=y+dy[i];if(u<1||u>n||v<1||v>n)③;if(map[u][v]==0||vis[u][v]==-1){vis[u][v]=④;pu=pu+1;h[pu][1]=u;h[pu][2]=v;if(u==ex&&⑤)?{printf("%d",vis[u][v]);?return0;?} }?}/*endfor*/}while(po<=pu); return0;}2.丢瓶盖小鱼同学是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得任意两个瓶盖间的最小距离在所有方案中最大,他想知道,这个距离可以到多少?输入格式:第一行,两个整数,A,B。(B<=A<=10000)第二行,A个整数,分别为这A个瓶盖坐标。输出格式:仅一个整数,为所求答案。输入样例5312345输出样例2程序:#definemaxn10000+500#include<stdio.h>#include<stdlib.h>inti,n,k,a[maxn];p(constvoid*a,constvoid*b){return*(int*)a-*(int*)b;}intcheck(intm){?inttmp=a[1]+t=1;?for(i=2;i<=n;++i) if(a[i]>=tmp) { cnt++; ①; }?return②;}intmain(){?scanf("%d%d",&n,&k);?intl=1;?longintr=1000000000;?for(i=1;i<=n;++i) scanf("%d",&a[i]);qsort(a+1,n,sizeof(int),comp);?while(l<r)?{ intmid=③; if(check(mid)) ④; elser=mid-1;?}?⑤;?return0;}

收藏

分享

举报
下载此文档