#include using namespace std; using ll = long long; using ld = long double; #ifdef DEB #define D if(1) #else #define D if(0) #endif const int NMAX = 512345; struct Bod { ld x,y; void rot(ld sina,ld cosa) { ld oldx=x; ld oldy=y; x = - sina*oldy + cosa*oldx; y = sina*oldx + cosa*oldy; } }; int n; ld r; Bod zaklad; Bod arr[NMAX]; pair sour [2*NMAX]; int soulen=0; int main() { scanf("%d%LF%LF%LF",&n,&r,&(zaklad.x),&(zaklad.y)); int invertx = (zaklad.x<0)?-1:1; int inverty = (zaklad.y<0)?-1:1; zaklad.x *= invertx; zaklad.y *= inverty; r += 0.0001; ld uhel; if(zaklad.x==0) { uhel = ld(M_PI)/2; } else { uhel = - atan(zaklad.y/zaklad.x); } ld sina = sin(uhel); ld cosa = cos(uhel); D printf("x=%d\ny=%d\n",invertx,inverty); D printf("s=%LF\nc=%LF\n",sina,cosa); for(int i=0;i=0) { ld dis = sqrt(r*r-arr[i].y*arr[i].y); sour[soulen++]={arr[i].x-dis,1}; sour[soulen++]={arr[i].x+dis,-1}; } } sort(sour,sour+soulen); int p=0; int out = 0; for(int i=0;i