卡了好久了,如果有好心人救一救非常感谢
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
double l,w;
ll n;
ll cnt;
typedef pair<double,double> p;
priority_queue<p,vector<p>,greater<p> > que;
int main(){
//ios::sync_with_stdio(false);
//cin.tie(0),cout.tie(0);
while("我是死循环"){
cnt = 0;
double x,r;
cin >> n >> l >> w;
for(ll i = 1;i <= n;i++){
cin >> x >> r;
if(r*2 <= w){
continue;
}
double L = x * 1.0 - sqrt(r * r * 1.0 - w * w * 1.0 / 4);
double R = x * 1.0 + sqrt(r * r * 1.0 - w * w * 1.0 / 4);
que.push(make_pair(L,R));
}
double temp = 0;
bool o = 0;
while(!que.empty()){
double L = que.top().first;
double R = que.top().second;
//cout << L << " " << R << " " << temp << " ";
que.pop();
if(L > temp){
break;
}
if(temp >= L && (!(que.top().first <= temp) || que.empty()) && R > temp){
//cout << "Yeahhhh";
cnt++;
temp = R;
}//cout << endl;
if(temp >= l){
cout << cnt << endl;
o = 1;
break;
}
}
while(!que.empty()){
que.pop();
}
if(!o){
cout << -1<< endl;
}
}
return 0;
}