#include using namespace std; #define fio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); typedef long long ll; ll n,rr,a,b; double r; vector > body; vector > hranice; void solve_special(){ for(pair bod: body){ double coef1=-2.0*bod.second,coef0=bod.first*bod.first+bod.second*bod.second-r*r; double disk=coef1*coef1-4.0*coef0; if(disk<0)continue; double res1=(-coef1-sqrt(disk))/2.0,res2=(-coef1+sqrt(disk))/2.0; hranice.push_back({res1,true}); hranice.push_back({res2,false}); } } void solve_regular(){ for(pair bod: body){ double coef2=1.0+((1.0*b*b)/(1.0*a*a)),coef1=2.0*bod.first+((2.0*b*bod.second)/(a)),coef0=bod.first*bod.first+bod.second*bod.second-r*r; double disk=coef1*coef1-4.0*coef0*coef2; if(disk<0)continue; double res1=(-coef1-sqrt(disk))/(2.0*coef2),res2=(-coef1+sqrt(disk))/(2.0*coef2); hranice.push_back({res1,true}); hranice.push_back({res2,false}); } } int main() { fio cin>>n>>rr>>a>>b; r = rr*1.0+0.0001; for(int i=0;i>x>>y; body.push_back({x,y}); } if(a==0LL){ solve_special(); }else { solve_regular(); } sort(hranice.begin(),hranice.end()); int vsledok=0,actual=0; for(auto hranica: hranice){ if(hranica.second)actual++; else actual--; vsledok=max(vsledok,actual); } cout <