fork(1) download
  1. #include<iostream>
  2. #include<stack>
  3. #include<stdio.h>
  4. #include<string.h>
  5. using namespace std;
  6. int main()
  7. { int t;
  8. cin>>t;
  9. stack<char> S;
  10. while(t--)
  11. {
  12. char s1[401],s2[401];
  13. cin>>s1;
  14. int len=strlen(s1);
  15. s1[len]=')';
  16. s1[len+1]='\0';
  17. S.push('(');
  18. int i=0,j=0;
  19. while(!S.empty())
  20. {
  21. if(s1[i]=='('||s1[i]=='+'||s1[i]=='-'||s1[i]=='*'||s1[i]=='/'||s1[i]=='^')
  22. {
  23. S.push(s1[i]);
  24. i++;
  25. }
  26. else if(s1[i]==')')
  27. {
  28. while(S.top()!='(')
  29. {
  30. s2[j]=S.top();
  31. S.pop();
  32. j++;
  33. }
  34. S.pop();
  35. i++;
  36. }
  37. else
  38. {
  39. s2[j]=s1[i];
  40. i++;j++;
  41. }
  42.  
  43. }
  44.  
  45. int len2=strlen(s2);
  46. s2[len2]='\0';
  47. cout<<s2;
  48. cout<<"\n";
  49. }
  50. return 0;
  51. }
Success #stdin #stdout 0s 3480KB
stdin
3
(a+(b*c))
((a+b)*(z+x))
((a+t)*((b+(a+c))^(c+d)))
stdout
abc*+
ab+zx+*
at+bac++cd+^*BF	`DF	DBF	`BF	`BF	`DF	DBF