给大家推荐个靠谱的公众号程序员探索之路,大家一起加油
<pre class="csharp" name="code">#include<stdio.h>
#include<math.h>
#include<stdlib.h>
struct num{//结构体
double x,y;
}q[10000];
int cmp(const void *a,const void *b){//排序
if((*(num *)a).x==(*(num *)b).x)
return (*(num *)a).y-(*(num *)b).y;
else
return (*(num *)a).x-(*(num *)b).x;
}
int pan(double e,int c){//计算函数
double max=0,b=0;
int s=0;
while(b<e){
max=0;
for(int k=0;k<c&&q[k].x<=b;++k){
if(q[k].y-b>max)
max=q[k].y-b;
}
if(0==max) return 0;
b=b+max;
s++;
}
return s;
}
int main(){
int N,num;
int n,length,wide,c;
int x,r;
scanf("%d",&N);
while(N--){
c=0;
scanf("%d %d %d",&n,&length,&wide);
for(int i=0;i<n;i++){
scanf("%d %d",&x,&r);
if(r*2>=wide){
double t=sqrt((double)(r*r-wide*wide/4));
q[c].x=x-t;//得到区间
q[c++].y=x+t;
}
}
qsort(q,c,sizeof(q[0]),cmp);
num=pan(length,c);
printf("%d\n",num);
}
return 0;
}