Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstdlib>
- using namespace std;
- ifstream cin("egalitati.in");
- ofstream cout("egalitati.out");
- int n,i,j,t[30];
- char v1[30],v2[30][20],v3[30],v4[30][20],s[50],k;
- int rezolva(int i)
- {
- for(int k=1;k<=n;k++)
- if(v1[k]=='a'+i-1)
- {
- if(v3[k]==0)//necunoscuta=operand
- if(v2[k][0]<'a')//nec=123
- return atoi(v2[k]);
- else
- return rezolva(v2[k][0]-'a'+1);
- int a,b;//necunoscuta=operand1 op operand2
- if(v2[k][0]<'a')
- a=atoi(v2[k]);
- else
- a=rezolva(v2[k][0]-'a'+1);
- if(v4[k][0]<'a')
- b=atoi(v4[k]);
- else
- b=rezolva(v4[k][0]-'a'+1);
- if(v3[k]=='+')
- return a+b;
- return a*b;
- }
- }
- int main()
- {
- cin>>n;
- cin.get();
- for(i=1;i<=n;i++)
- {
- cin.getline(s,50);
- v1[i]=s[0];
- t[s[0]-'a'+1]=-1;
- if(s[1]==' ')
- j=3;
- else
- j=2;
- if(s[j]==' ')
- j++;
- if(s[j]>='a')
- v2[i][0]=s[j++];
- else
- for(k=0;s[j]&&s[j]>='0'&&s[j]<='9';j++)
- v2[i][k++]=s[j];
- if(s[j])
- {
- if(s[j]==' ')
- j++;
- v3[i]=s[j++];
- if(s[j]==' ')
- j++;
- if(s[j]>='a')
- v4[i][0]=s[j++];
- else
- for(k=0;s[j]&&s[j]>='0'&&s[j]<='9';j++)
- v4[i][k++]=s[j];
- }
- }
- for(i=1;i<=26;i++)
- if(t[i]==-1)
- {
- t[i]=rezolva(i);
- cout<<char('a'+i-1)<<" = "<<t[i]<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement