#include #define ll long long #define ld long double #define fi first #define se second #define pll pair #define INF (1ll << 60) #define ppl pair #define vl vector #define vvl vector #define FOR(i,a,b) for(ll i=a;i>n; ld R,A,B; cin>>R>>A>>B; R+= 1.0e-3; vector> segs; for(int i=0;i>xp>>yp; // cout << xp << " "<< yp << endl; if(A!=0){ ld a = 1.0l + (B/A)*(B/A); ld b = -2.0*xp - 2.0*(B/A)*yp; ld c = xp*xp + yp*yp - R*R; ld delta = b*b - 4.0*a*c; // cout << delta; if(delta>=0){ ld left = (-b-sqrtl(delta))/(2.0*a); ld right = (-b+sqrtl(delta))/(2.0*a); // cout <<"xs: " << left << " " << right< right){ swap(left , right); } segs.push_back({left , 0}); segs.push_back({right , 1}); }else{ // cout << "NOT"; continue; } }else{ ld left = yp + sqrtl(R*R - xp*xp); ld right = yp - sqrtl(R*R + xp*xp); left = abs(left); right = abs(right); if(left > right){ swap(left , right); } segs.push_back({left , 0}); segs.push_back({right , 1}); } // cout << endl; } sort(segs.begin() , segs.end()); int open=0; int res=0; for(auto s : segs){ // cout << s.first << " , " << s.second << endl; if(s.second==0){ open++; res= max(open, res); }else{ open--; } } cout << res<