Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstring>
- using namespace std;
- char s[1001];
- int v[26],uz[26];
- void elsp()
- {
- for(int i=0; s[i];)
- if(s[i]==' ')
- s[i]=0,strcat(s,s+i+1);
- else
- ++i;
- }
- void det_var()
- {
- for(int i=0;s[i];++i)
- if(s[i]>='a'&&s[i]<='z')
- uz[s[i]-'a']=1;
- }
- int main()
- {
- int i,semn,e=0;
- ifstream f("eval.in");
- f.getline(s,1001);
- f.close();
- for(i=0;i<26;++i)
- v[i]=i+1;
- elsp();
- det_var();
- i=0;
- ofstream g("eval.out");
- if(s[i]=='+')
- v[s[i+2]-'a']++,e=v[s[i+2]-'a'],i+=3;
- else
- if(s[i]=='-')
- v[s[i+2]-'a']--,e=v[s[i+2]-'a'],i+=3;
- else
- e=v[s[i]-'a'],++i;
- if(s[i]=='+'&&s[i+1]=='+')
- v[s[i-1]-'a']++,i+=2;
- else
- if(s[i]=='-'&&s[i+1]=='-')
- v[s[i-1]-'a']--,i+=2;
- while(s[i]) /// +/- operand
- {
- if(s[i]=='+')
- semn=1;
- else
- if (s[i]=='-')
- semn=-1;
- ++i;
- if(s[i]=='+') /// Ne ocupam de operand
- v[s[i+2]-'a']++,e=e+semn*v[s[i+2]-'a'],i+=3;
- else
- if(s[i]=='-')
- v[s[i+2]-'a']--,e=e+semn*v[s[i+2]-'a'],i+=3;
- else
- e=e+semn*v[s[i]-'a'],++i;
- if(s[i]=='+'&&s[i+1]=='+')
- v[s[i-1]-'a']++,i+=2;
- else
- if(s[i]=='-'&&s[i+1]=='-')
- v[s[i-1]-'a']--,i+=2;
- }
- g<<e<<'\n';
- for (i=0;i<26;++i)
- if (uz[i])
- g<<v[i]<<'\n';
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement