#include #include #include # define M_PI 3.14159265358979323846 /* pi */ # define M_PI_2 1.57079632679489661923 /* pi/2 */ int main() { int x0,y0,N,x,y,i,count,max,k; float r; double du; double bod[300]; for(;;) { scanf("%d %d %f\n", &x0,&y0,&r); if (r < 0) return 0; scanf("%d\n", &N); count=0; for(i=0; i= x*x+y*y) { if (x < 0) bod[count++] = x ? atan(y/x) : M_PI_2; else bod[count++] = x ? M_PI-atan(-y/x) : -M_PI_2; } } max=0; if (count) { int comp(const void *a, const void *b) { return *(double*)a > *(double*)b; } qsort((void*)bod, count, sizeof(double), comp); memcpy((void*)(bod+count), (void*)bod, sizeof(double)*count); for (i=0; i < count; ++i) { for (k=1; k 2*M_PI) du -= 2* M_PI; if (du - 1e-10 <= M_PI) ++k; else break; } if (k > max) { max = k; if (max == count) break; } } } printf("%d\n", max); } return 0; }