| ||||||||||
| 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 | |||||||||
哪位高手帮我看看为什么我的程序提交后总是runtime,在VC或MGW下都是正确的#include<iostream>
//#include<fstream>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
int main(int argc, char* argv[]){
int n;
//ifstream in("3337.txt");
cin>>n;
while(n--){
string s;
vector<int> v1,value;
vector<char> v2,v;
cin>>s;
cout<<"Expression: "<<s<<endl;
for(int i=0;i<s.length()-1;i++){
if(s[i]=='+'&&s[i+1]=='+'){
s[i]='&';s[i+1]='&';
if(s[i+2]>='a'&&s[i+2]<='z'){
s[i+2]=s[i+2]+1;
s[i]='#';s[i+1]='#';
}
}
if(s[i]=='-'&&s[i+1]=='-'){
s[i]='*';s[i+1]='*';
if(s[i+2]>='a'&&s[i+2]<='z'){
s[i+2]=s[i+2]-1;
s[i]='%';s[i+1]='%';
}
}
}
for(i=0;i<s.length();i++){
if(s[i]!='#'&&s[i]!='%'&&s[i]!='&'&&s[i]!='*'){
if(s[i]>='`'&&s[i]<='{')
v1.push_back(s[i]-'`');
else
v2.push_back(s[i]);
}
}
reverse(v1.begin(),v1.end());
reverse(v2.begin(),v2.end());
while(!v2.empty()){
int j=v1.size()-1;
if(v2[v2.size()-1]=='+'){
int t=v1[j]+v1[j-1];
v1.pop_back(),v1.pop_back();v2.pop_back();
v1.push_back(t);
}
else{
int t=v1[j]-v1[j-1];
v1.pop_back(),v1.pop_back();v2.pop_back();
v1.push_back(t);
}
j--;
}
cout<<"value = "<<v1[0]<<endl;
for(i=0;i<s.length();i++){
if(s[i]=='#'&&s[i+2]>='a'&&s[i+2]<='{'){
v.push_back(s[i+2]-1);value.push_back(s[i+2]-'`');
}
if(s[i]=='%'&&s[i+2]>='`'&&s[i+2]<='z'){
v.push_back((char)(s[i+2]+1));value.push_back(s[i+2]-'`');
}
if(s[i]=='&'&&s[i-1]>='a'&&s[i-1]<='z'){
v.push_back(s[i-1]);value.push_back(s[i-1]-'`'+1);
}
if(s[i]=='*'&&s[i-1]>='a'&&s[i-1]<='z'){
v.push_back(s[i-1]);value.push_back(s[i-1]-'`'-1);
}
if(i>0&&i<=s.length()-3){
if((s[i-1]=='+'||s[i-1]=='-')&&(s[i+1]=='+'||s[i+1]=='-')){
v.push_back(s[i]);value.push_back(s[i]-'`');
}
}
if(i==0&&(s[i+1]=='+'||s[i+1]=='-')){
v.push_back(s[0]);value.push_back(s[0]-'`');
}
if(i==(int)s.length()-2&&(s[i]=='+'||s[i]=='-')){
v.push_back(s[i+1]);value.push_back(s[i+1]-'`');
}
}
int change=1;
for(i=v.size()-1;i>=0&&change;i--){
change=1;
for(int j=0;j<i;j++){
if((v[j]-'`')>(v[j+1]-'`')){
char temp=v[j];v[j]=v[j+1];v[j+1]=temp;
int t=value[j];value[j]=value[j+1];value[j+1]=t;
change=1;
}
}
}
for(i=0;i<v.size();i++){
cout<<v[i]<<" = "<<value[i]<<endl;
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator