#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int cmp(const void *a, const void *b);
struct data
{
double l;
double r;
};
int main()
{
int T;
int n, h, w;
data a[10010];
cin >> T;
while(T--)
{
int x, r;
//int k = 0;
cin >> n >> w >> h;
for(int i = 1; i <= n; i++)
{
cin >> x >> r;
if(2*r <= h)
a[i].l = a[i].r = x;
else
{
//k++;
a[i].l = x - sqrt(r*r - h*h/4.0);
a[i].r = x + sqrt(r*r - h*h/4.0);
//if(a[k].l < 0)
//a[k].l = 0;
//if(a[k].r >w)
//a[k].r = w;
}
}
int flag = 1;
double cur = 0;
int sum = 0;
qsort(a+1, n, sizeof(a[0]), cmp);
while(cur < w)
{
double t = cur;
for(int i = 1; i <= n && cur >= a[i].l; i++)
{
t = t > a[i].r ? t : a[i].r;
}
if(cur == t)
{
flag = 0;
break;
}
else
{
cur = t;
sum++;
}
}
if(flag == 1)
cout << sum << endl;
else
cout << 0 << endl;
}
}
int cmp(const void *a, const void *b)
{
if( ((data *)a)->l > ((data *)b)->l )
return 1;
else
return -1;
}
南阳理工OJ_题目12 喷水装置(二)
最新推荐文章于 2020-06-13 22:23:57 发布