F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_20613600_7686.cpp:6:21: error: stray '#' in program
     #define eps 1e-8#define N 200using namespace std; const double PI=acos(-1.0);int dlcmp(double x){    return x<-eps?-1:x>
                     ^
0_0_20613600_7686.cpp:7:5: note: in expansion of macro 'eps'
     eps;} struct Point{    double x,y;     Point(){}    Point(double a,double b):x(a),y(b){}     Point operator + (const Point a) const {return Point(x+a.x,y+a.y);}    Point operator - (const Point a) const {return Point(x-a.x,y-a.y);}    Point operator * (const double a) const {return Point(x*a,y*a);}    Point operator / (const double a) const {return Point(x/a,y/a);}     bool operator == (const Point a)    {        return !dlcmp(x-a.x)&&!dlcmp(y-a.y);    }     Point trunc(double d) const    {        double dis(Point,Point);        double len=dis(*this,Point(0,0));        return Point(x*d/len,y*d/len);    }     Point rotate(double a)    {        return Point(x*cos(a)-y*sin(a),y*cos(a)+x*sin(a));    }}; struct Circle{    Point o;    double r;     Circle(){}    Circle(Point a,double l):o(a),r(l){}}; struct node{    double s,e;     node(){}    node(double a,double b):s(a),e(b){}}; Circle c[N],red,purple;vector<node>arc; double sqr(double x){    return x*x;} double fix(double x){    if (dlcmp(x-1)>=0)        return 1;    if (dlcmp(x+1)<=0)        return -1;    return x;} double dis(Point a,Point b){    return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));} void get_InCommonTangent(Circle c1,Circle c2,Point &s1,Point &e1,Point &s2,Point &e2){    double l=dis(c1.o,c2.o);    double d=l*c1.r/(c1.r+c2.r);    double tmp=c1.r/d;    tmp=fix(tmp);    double theta=acos(tmp);    Point vec=c2.o-c1.o;     vec=vec.trunc(c1.r);    s1=c1.o+vec.rotate(theta);    s2=c1.o+vec.rotate(-theta);     vec=c1.o-c2.o;    vec=vec.trunc(c2.r);    e1=c2.o+vec.rotate(theta);    e2=c2.o+vec.rotate(-theta);} void inter_circle_ray(Circle c,Point s,Point e,Point &p){    Point vec=e-s;    double A=sqr(vec.x)+sqr(vec.y);    double B=2*(vec.x*(s.x-c.o.x)+vec.y*(s.y-c.o.y));    double C=sqr(s.x-c.o.x)+sqr(s.y-c.o.y)-sqr(c.r);    double delta=sqr(B)-4*A*C;     delta=fabs(delta);     double k=(-B+sqrt(delta))/(2*A);     p=s+vec*k;} double get_angle(Point a){    return atan2(a.y,a.x);} double cmp(node a,node b){    if (dlcmp(a.s-b.s)==0)        return dlcmp(a.e-b.e)<0;    else        return dlcmp(a.s-b.s)<0;} int main(){    int n,p,x,y,r,i,j;    double ans,sum,cur;    node u,v;    Point s1,e1,s2,e2,vec,p1,p2;     while (scanf("%d%d%d%d%d",&n,&p,&x,&y,&r),n||p||x||y||r)    {        purple.o=Point(0,0);        purple.r=(double)p;        red.o.x=(double)x;        red.o.y=(double)y;        red.r=(double)r;         arc.clear();         for (i=0;i<n;i++)            scanf("%lf%lf%lf",&c[i].o.x,&c[i].o.y,&c[i].r);         for (i=0;i<n;i++)        {            get_InCommonTangent(red,c[i],s1,e1,s2,e2);             if (s1==e1)            {                vec=c[i].o-red.o;                e1=s1+vec.rotate(PI/2);                e2=s2+vec.rotate(-PI/2);            }             inter_circle_ray(purple,s1,e1,p1);            inter_circle_ray(purple,s2,e2,p2);             u.s=get_angle(p1);            u.e=get_angle(p2);             if (u.s>u.e)            {                arc.push_back(node(u.s,PI));                arc.push_back(node(-PI,u.e));            }            else                arc.push_back(u);        }         sort(arc.begin(),arc.end(),cmp);         sum=arc[0].e-arc[0].s;        cur=arc[0].e;         for (i=1;i<arc.size();i++)        {            if (dlcmp(arc[i].e-cur)<=0)                continue;             if (dlcmp(arc[i].s-cur)>0)                sum+=arc[i].e-arc[i].s;            else                sum+=arc[i].e-cur;             cur=arc[i].e;        }         ans=(2*PI-sum)/(2*PI);         if (ans<0)            ans=0;         printf("%.4f\n",ans);    }     return 0;}
     ^
0_0_20613600_7686.cpp:6:17: error: expected unqualified-id before numeric constant
     #define eps 1e-8#define N 200using namespace std; const double PI=acos(-1.0);int dlcmp(double x){    return x<-eps?-1:x>
                 ^
0_0_20613600_7686.cpp:7:5: note: in expansion of macro 'eps'
     eps;} struct Point{    double x,y;     Point(){}    Point(double a,double b):x(a),y(b){}     Point operator + (const Point a) const {return Point(x+a.x,y+a.y);}    Point operator - (const Point a) const {return Point(x-a.x,y-a.y);}    Point operator * (const double a) const {return Point(x*a,y*a);}    Point operator / (const double a) const {return Point(x/a,y/a);}     bool operator == (const Point a)    {        return !dlcmp(x-a.x)&&!dlcmp(y-a.y);    }     Point trunc(double d) const    {        double dis(Point,Point);        double len=dis(*this,Point(0,0));        return Point(x*d/len,y*d/len);    }     Point rotate(double a)    {        return Point(x*cos(a)-y*sin(a),y*cos(a)+x*sin(a));    }}; struct Circle{    Point o;    double r;     Circle(){}    Circle(Point a,double l):o(a),r(l){}}; struct node{    double s,e;     node(){}    node(double a,double b):s(a),e(b){}}; Circle c[N],red,purple;vector<node>arc; double sqr(double x){    return x*x;} double fix(double x){    if (dlcmp(x-1)>=0)        return 1;    if (dlcmp(x+1)<=0)        return -1;    return x;} double dis(Point a,Point b){    return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));} void get_InCommonTangent(Circle c1,Circle c2,Point &s1,Point &e1,Point &s2,Point &e2){    double l=dis(c1.o,c2.o);    double d=l*c1.r/(c1.r+c2.r);    double tmp=c1.r/d;    tmp=fix(tmp);    double theta=acos(tmp);    Point vec=c2.o-c1.o;     vec=vec.trunc(c1.r);    s1=c1.o+vec.rotate(theta);    s2=c1.o+vec.rotate(-theta);     vec=c1.o-c2.o;    vec=vec.trunc(c2.r);    e1=c2.o+vec.rotate(theta);    e2=c2.o+vec.rotate(-theta);} void inter_circle_ray(Circle c,Point s,Point e,Point &p){    Point vec=e-s;    double A=sqr(vec.x)+sqr(vec.y);    double B=2*(vec.x*(s.x-c.o.x)+vec.y*(s.y-c.o.y));    double C=sqr(s.x-c.o.x)+sqr(s.y-c.o.y)-sqr(c.r);    double delta=sqr(B)-4*A*C;     delta=fabs(delta);     double k=(-B+sqrt(delta))/(2*A);     p=s+vec*k;} double get_angle(Point a){    return atan2(a.y,a.x);} double cmp(node a,node b){    if (dlcmp(a.s-b.s)==0)        return dlcmp(a.e-b.e)<0;    else        return dlcmp(a.s-b.s)<0;} int main(){    int n,p,x,y,r,i,j;    double ans,sum,cur;    node u,v;    Point s1,e1,s2,e2,vec,p1,p2;     while (scanf("%d%d%d%d%d",&n,&p,&x,&y,&r),n||p||x||y||r)    {        purple.o=Point(0,0);        purple.r=(double)p;        red.o.x=(double)x;        red.o.y=(double)y;        red.r=(double)r;         arc.clear();         for (i=0;i<n;i++)            scanf("%lf%lf%lf",&c[i].o.x,&c[i].o.y,&c[i].r);         for (i=0;i<n;i++)        {            get_InCommonTangent(red,c[i],s1,e1,s2,e2);             if (s1==e1)            {                vec=c[i].o-red.o;                e1=s1+vec.rotate(PI/2);                e2=s2+vec.rotate(-PI/2);            }             inter_circle_ray(purple,s1,e1,p1);            inter_circle_ray(purple,s2,e2,p2);             u.s=get_angle(p1);            u.e=get_angle(p2);             if (u.s>u.e)            {                arc.push_back(node(u.s,PI));                arc.push_back(node(-PI,u.e));            }            else                arc.push_back(u);        }         sort(arc.begin(),arc.end(),cmp);         sum=arc[0].e-arc[0].s;        cur=arc[0].e;         for (i=1;i<arc.size();i++)        {            if (dlcmp(arc[i].e-cur)<=0)                continue;             if (dlcmp(arc[i].s-cur)>0)                sum+=arc[i].e-arc[i].s;            else                sum+=arc[i].e-cur;             cur=arc[i].e;        }         ans=(2*PI-sum)/(2*PI);         if (ans<0)            ans=0;         printf("%.4f\n",ans);    }     return 0;}
     ^
0_0_20613600_7686.cpp: In function 'int dlcmp(double)':
0_0_20613600_7686.cpp:6:116: error: 'eps' was not declared in this scope
     #define eps 1e-8#define N 200using namespace std; const double PI=acos(-1.0);int dlcmp(double x){    return x<-eps?-1:x>
                                                                                                                    ^
0_0_20613600_7686.cpp:7:5: note: in expansion of macro 'eps'
     eps;} struct Point{    double x,y;     Point(){}    Point(double a,double b):x(a),y(b){}     Point operator + (const Point a) const {return Point(x+a.x,y+a.y);}    Point operator - (const Point a) const {return Point(x-a.x,y-a.y);}    Point operator * (const double a) const {return Point(x*a,y*a);}    Point operator / (const double a) const {return Point(x/a,y/a);}     bool operator == (const Point a)    {        return !dlcmp(x-a.x)&&!dlcmp(y-a.y);    }     Point trunc(double d) const    {        double dis(Point,Point);        double len=dis(*this,Point(0,0));        return Point(x*d/len,y*d/len);    }     Point rotate(double a)    {        return Point(x*cos(a)-y*sin(a),y*cos(a)+x*sin(a));    }}; struct Circle{    Point o;    double r;     Circle(){}    Circle(Point a,double l):o(a),r(l){}}; struct node{    double s,e;     node(){}    node(double a,double b):s(a),e(b){}}; Circle c[N],red,purple;vector<node>arc; double sqr(double x){    return x*x;} double fix(double x){    if (dlcmp(x-1)>=0)        return 1;    if (dlcmp(x+1)<=0)        return -1;    return x;} double dis(Point a,Point b){    return sqrt(sqr(a.x-b.x)+sqr(a.y-b.y));} void get_InCommonTangent(Circle c1,Circle c2,Point &s1,Point &e1,Point &s2,Point &e2){    double l=dis(c1.o,c2.o);    double d=l*c1.r/(c1.r+c2.r);    double tmp=c1.r/d;    tmp=fix(tmp);    double theta=acos(tmp);    Point vec=c2.o-c1.o;     vec=vec.trunc(c1.r);    s1=c1.o+vec.rotate(theta);    s2=c1.o+vec.rotate(-theta);     vec=c1.o-c2.o;    vec=vec.trunc(c2.r);    e1=c2.o+vec.rotate(theta);    e2=c2.o+vec.rotate(-theta);} void inter_circle_ray(Circle c,Point s,Point e,Point &p){    Point vec=e-s;    double A=sqr(vec.x)+sqr(vec.y);    double B=2*(vec.x*(s.x-c.o.x)+vec.y*(s.y-c.o.y));    double C=sqr(s.x-c.o.x)+sqr(s.y-c.o.y)-sqr(c.r);    double delta=sqr(B)-4*A*C;     delta=fabs(delta);     double k=(-B+sqrt(delta))/(2*A);     p=s+vec*k;} double get_angle(Point a){    return atan2(a.y,a.x);} double cmp(node a,node b){    if (dlcmp(a.s


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-06-02 09:57:24, Gzip enabled