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_20612908_31210.cpp:6:26: error: stray '#' in program
     using namespace std; #define i64 __int64 class fraction{private:    inline i64 Gcd (i64 x,i64 y)    {        return y==0?x:Gcd(y,x%y);    }     i64 Lcm (i64 x,i64 y)    {        x=x/Gcd(x,y)*y;        if(x<0) x=-x;        return x;    }public:    i64 a,b;     fraction () {}    fraction (i64 x)    {        a=x; b=1;    }     fraction (i64 x,i64 y)    {        a=x; b=y;        Refresh();    }     void Refresh ()    {        if (b<0) b=-b,a=-a;        i64 k=Gcd(a,b);        if (k<0) k=-k;        a/=k; b/=k;    }     fraction Inverse () const    {        return fraction (b,a);    }     fraction operator + (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a+ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator - (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a-ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator * (fraction p)    {        fraction ans;        ans.a=a*p.a;        ans.b=b*p.b;        ans.Refresh();        return ans;    }     fraction operator / (fraction p)    {        fraction ans;        ans.a=a*p.b;        ans.b=b*p.a;        ans.Refresh();        return ans;    }     bool operator < (const fraction &p) const    {        return a*p.b<b*p.a;    }     bool operator > (const fraction &p) const    {        return a*p.b>b*p.a;    }     bool operator == (const fraction &p) const    {        return a*p.b==b*p.a;    }     fraction operator | (fraction p)    {        fraction t1=fraction (b,a);        fraction t2=p.Inverse ();        t1=t1+t2;        return t1.Inverse();    }     void print ()    {        printf("%I64d/%I64d\n",a,b);    }}; string s;int len; fraction read (int &now){    int fz=0,fm=0;    int i;    for (i=now;i<len;i++)    {        if (s[i]=='/') break;        fz*=10;        fz+=s[i]-'0';    }    for (i=i+1;i<len;i++)    {        if (isdigit(s[i]))        {            fm*=10;            fm+=s[i]-'0';        }        else break;    }    fraction tmp(fz,fm);    now=i-1;    return tmp;} fraction cal (int &now){    fraction ans;    int front=-1;    for (int i=now+1;i<len;i++)    {        if (s[i]=='(')        {            if(front==-1)               ans=cal(i);            else if(front==0)                ans=ans+cal(i);            else if(front==1)                ans=ans|cal(i);        }        else if (isdigit(s[i]))        {            if (front==-1)                ans=read(i);            else if (front==0)                ans=ans+read(i);            else if (front==1)                ans=ans|read(i);        }        else if (s[i]==')')        {            now=i;            return ans;        }        else if (s[i]=='&')            front=0;        else if (s[i]=='|')            front=1;    }} int main (){    while (getline(cin,s))    {        len=s.length();        fraction ans;        int flag=-1;         for (int i=0;i<len;i++)        {            if (s[i]=='(')            {                if (flag==-1)                    ans=cal(i);                else if (flag==0)                    ans=ans+cal(i);                else if(flag==1)                    ans=ans|cal(i);            }            else if (isdigit(s[i]))            {                if (flag==-1)                    ans=read(i);                else if (flag==0)                    ans=ans+read(i);                else if (flag==1)                     ans=ans|read(i);            }            else if (s[i]=='&')                flag=0;            else if (s[i]=='|')                flag=1;        }        ans.print();    }    return 0;}
                          ^
0_0_20612908_31210.cpp:6:27: error: 'define' does not name a type
     using namespace std; #define i64 __int64 class fraction{private:    inline i64 Gcd (i64 x,i64 y)    {        return y==0?x:Gcd(y,x%y);    }     i64 Lcm (i64 x,i64 y)    {        x=x/Gcd(x,y)*y;        if(x<0) x=-x;        return x;    }public:    i64 a,b;     fraction () {}    fraction (i64 x)    {        a=x; b=1;    }     fraction (i64 x,i64 y)    {        a=x; b=y;        Refresh();    }     void Refresh ()    {        if (b<0) b=-b,a=-a;        i64 k=Gcd(a,b);        if (k<0) k=-k;        a/=k; b/=k;    }     fraction Inverse () const    {        return fraction (b,a);    }     fraction operator + (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a+ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator - (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a-ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator * (fraction p)    {        fraction ans;        ans.a=a*p.a;        ans.b=b*p.b;        ans.Refresh();        return ans;    }     fraction operator / (fraction p)    {        fraction ans;        ans.a=a*p.b;        ans.b=b*p.a;        ans.Refresh();        return ans;    }     bool operator < (const fraction &p) const    {        return a*p.b<b*p.a;    }     bool operator > (const fraction &p) const    {        return a*p.b>b*p.a;    }     bool operator == (const fraction &p) const    {        return a*p.b==b*p.a;    }     fraction operator | (fraction p)    {        fraction t1=fraction (b,a);        fraction t2=p.Inverse ();        t1=t1+t2;        return t1.Inverse();    }     void print ()    {        printf("%I64d/%I64d\n",a,b);    }}; string s;int len; fraction read (int &now){    int fz=0,fm=0;    int i;    for (i=now;i<len;i++)    {        if (s[i]=='/') break;        fz*=10;        fz+=s[i]-'0';    }    for (i=i+1;i<len;i++)    {        if (isdigit(s[i]))        {            fm*=10;            fm+=s[i]-'0';        }        else break;    }    fraction tmp(fz,fm);    now=i-1;    return tmp;} fraction cal (int &now){    fraction ans;    int front=-1;    for (int i=now+1;i<len;i++)    {        if (s[i]=='(')        {            if(front==-1)               ans=cal(i);            else if(front==0)                ans=ans+cal(i);            else if(front==1)                ans=ans|cal(i);        }        else if (isdigit(s[i]))        {            if (front==-1)                ans=read(i);            else if (front==0)                ans=ans+read(i);            else if (front==1)                ans=ans|read(i);        }        else if (s[i]==')')        {            now=i;            return ans;        }        else if (s[i]=='&')            front=0;        else if (s[i]=='|')            front=1;    }} int main (){    while (getline(cin,s))    {        len=s.length();        fraction ans;        int flag=-1;         for (int i=0;i<len;i++)        {            if (s[i]=='(')            {                if (flag==-1)                    ans=cal(i);                else if (flag==0)                    ans=ans+cal(i);                else if(flag==1)                    ans=ans|cal(i);            }            else if (isdigit(s[i]))            {                if (flag==-1)                    ans=read(i);                else if (flag==0)                    ans=ans+read(i);                else if (flag==1)                     ans=ans|read(i);            }            else if (s[i]=='&')                flag=0;            else if (s[i]=='|')                flag=1;        }        ans.print();    }    return 0;}
                           ^
0_0_20612908_31210.cpp:6:1727: error: 'fraction' does not name a type
     using namespace std; #define i64 __int64 class fraction{private:    inline i64 Gcd (i64 x,i64 y)    {        return y==0?x:Gcd(y,x%y);    }     i64 Lcm (i64 x,i64 y)    {        x=x/Gcd(x,y)*y;        if(x<0) x=-x;        return x;    }public:    i64 a,b;     fraction () {}    fraction (i64 x)    {        a=x; b=1;    }     fraction (i64 x,i64 y)    {        a=x; b=y;        Refresh();    }     void Refresh ()    {        if (b<0) b=-b,a=-a;        i64 k=Gcd(a,b);        if (k<0) k=-k;        a/=k; b/=k;    }     fraction Inverse () const    {        return fraction (b,a);    }     fraction operator + (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a+ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator - (fraction p)    {        fraction ans;        ans.b=Lcm(b,p.b);        ans.a=ans.b/b*a-ans.b/p.b*p.a;        ans.Refresh();        return ans;    }     fraction operator * (fraction p)    {        fraction ans;        ans.a=a*p.a;        ans.b=b*p.b;        ans.Refresh();        return ans;    }     fraction operator / (fraction p)    {        fraction ans;        ans.a=a*p.b;        ans.b=b*p.a;        ans.Refresh();        return ans;    }     bool operator < (const fraction &p) const    {        return a*p.b<b*p.a;    }     bool operator > (const fraction &p) const    {        return a*p.b>b*p.a;    }     bool operator == (const fraction &p) const    {        return a*p.b==b*p.a;    }     fraction operator | (fraction p)    {        fraction t1=fraction (b,a);        fraction t2=p.Inverse ();        t1=t1+t2;        return t1.Inverse();    }     void print ()    {        printf("%I64d/%I64d\n",a,b);    }}; string s;int len; fraction read (int &now){    int fz=0,fm=0;    int i;    for (i=now;i<len;i++)    {        if (s[i]=='/') break;        fz*=10;        fz+=s[i]-'0';    }    for (i=i+1;i<len;i++)    {        if (isdigit(s[i]))        {            fm*=10;            fm+=s[i]-'0';        }        else break;    }    fraction tmp(fz,fm);    now=i-1;    return tmp;} fraction cal (int &now){    fraction ans;    int front=-1;    for (int i=now+1;i<len;i++)    {        if (s[i]=='(')        {            if(front==-1)               ans=cal(i);            else if(front==0)                ans=ans+cal(i);            else if(front==1)                ans=ans|cal(i);        }        else if (isdigit(s[i]))        {            if (front==-1)                ans=read(i);            else if (front==0)                ans=ans+read(i);            else if (front==1)                ans=ans|read(i);        }        else if (s[i]==')')        {            now=i;            return ans;        }        else if (s[i]=='&')            front=0;     


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-11-26 08:38:52, Gzip enabled