Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstdlib>
  3. using namespace std;
  4. ifstream cin("egalitati.in");
  5. ofstream cout("egalitati.out");
  6. int n,i,j,t[30];
  7. char v1[30],v2[30][20],v3[30],v4[30][20],s[50],k;
  8. int rezolva(int i)
  9. {
  10. for(int k=1;k<=n;k++)
  11. if(v1[k]=='a'+i-1)
  12. {
  13. if(v3[k]==0)//necunoscuta=operand
  14. if(v2[k][0]<'a')//nec=123
  15. return atoi(v2[k]);
  16. else
  17. return rezolva(v2[k][0]-'a'+1);
  18. int a,b;//necunoscuta=operand1 op operand2
  19. if(v2[k][0]<'a')
  20. a=atoi(v2[k]);
  21. else
  22. a=rezolva(v2[k][0]-'a'+1);
  23. if(v4[k][0]<'a')
  24. b=atoi(v4[k]);
  25. else
  26. b=rezolva(v4[k][0]-'a'+1);
  27. if(v3[k]=='+')
  28. return a+b;
  29. return a*b;
  30. }
  31. }
  32. int main()
  33. {
  34. cin>>n;
  35. cin.get();
  36. for(i=1;i<=n;i++)
  37. {
  38. cin.getline(s,50);
  39. v1[i]=s[0];
  40. t[s[0]-'a'+1]=-1;
  41. if(s[1]==' ')
  42. j=3;
  43. else
  44. j=2;
  45. if(s[j]==' ')
  46. j++;
  47. if(s[j]>='a')
  48. v2[i][0]=s[j++];
  49. else
  50. for(k=0;s[j]&&s[j]>='0'&&s[j]<='9';j++)
  51. v2[i][k++]=s[j];
  52. if(s[j])
  53. {
  54. if(s[j]==' ')
  55. j++;
  56. v3[i]=s[j++];
  57. if(s[j]==' ')
  58. j++;
  59. if(s[j]>='a')
  60. v4[i][0]=s[j++];
  61. else
  62. for(k=0;s[j]&&s[j]>='0'&&s[j]<='9';j++)
  63. v4[i][k++]=s[j];
  64. }
  65. }
  66. for(i=1;i<=26;i++)
  67. if(t[i]==-1)
  68. {
  69. t[i]=rezolva(i);
  70. cout<<char('a'+i-1)<<" = "<<t[i]<<endl;
  71. }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement