Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
改过了还WA,岂有此理In Reply To:很明显,你忽略了IMPOSSIBLE的情况... Posted by:ferret_chao at 2005-03-16 17:08:18 #include <iostream> #include <sstream> #include <string> using namespace std; int main() { int n,x,y,result; int num=0; char ch,ch2,flag; char finish=0; string str; cin>>n; while(n-->0){ x=0,y=0; result=0; flag=1; finish=0; cin>>str; istringstream cins(str); while(!finish&&cins.get(ch)){ switch(ch){ case 'x':// read x if(flag) x++; else x--; break; case '+':// read '+' cins.get(ch); if(ch=='x'){ if(flag) x++; else x--; break; } cins.putback(ch); if(isdigit(ch)){ cins>>num; cins.get(ch2); if(ch2!='x'){ cins.putback(ch2); if(flag) y+=num; else y-=num; } else{ if(flag) x+=num; else x-=num; } break; } else{ x=0; finish=1;//impossible continue; } case '-'://read '-' cins.get(ch); if(ch=='x'){ if(flag) x--; else x++; break; } cins.putback(ch); if(isdigit(ch)){ cins>>num; cins.get(ch2); if(ch2!='x'){ cins.putback(ch2); if(flag) y-=num; else y+=num; } else{ if(flag) x-=num; else x+=num; } break; } else{ x=0; y=1; finish=1;//impossible continue; } case '=':// read '=' flag=0; break; case '0':case '1':case '2':case '3':case '4':case '5': case '6':case '7':case '8':case '9': cins.putback(ch); cins>>num; cins.get(ch2); if(ch2!='x'){ cins.putback(ch2); if(flag) y+=num; else y-=num; } else{ if(flag) x+=num; else x-=num; } break; default: x=0; y=1; finish=1;//impossible } } if(!x){ if(!y) cout<<"IDENTITY"<<endl; else cout<<"IMPOSSIBLE"<<endl; continue; } result=0-y/x; cout<<result<<endl; } return 1; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator