fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. string compute(string s){
  4. if (s.length() <= 1) {
  5. return s;
  6. }
  7. stack<int> t;
  8. int global = 1;
  9. int start = 0;
  10. if (s[0] == '(') {
  11. t.push(1);
  12. start = 1;
  13. }
  14. for (int i=start; i < s.length() ; i++) {
  15. if (s[i] == ')') {
  16. if (t.top() == 0){
  17. global = !global;
  18. }
  19. t.pop();
  20. } else if (s[i]=='-' || s[i]=='+') {
  21. if (s[i+1] == '(') {
  22. if (s[i] == '-') {
  23. t.push(0);
  24. global = !global;
  25. }
  26. i++;
  27. if (global == 0)
  28. cout << '-';
  29. else
  30. cout << '+';
  31. } else {
  32. if (global == 1) {
  33. cout<<s[i];
  34. } else {
  35. if (s[i] == '-') {
  36. cout<<'+';
  37. } else {
  38. cout << '-';
  39. }
  40. }
  41. }
  42. } else {
  43. cout << s[i];
  44. }
  45. }
  46. }
  47. int main() {
  48. string s = "-(a-(b+c)-d";
  49. cout<<compute(s);
  50. return 0;
  51. }
Runtime error #stdin #stdout #stderr 0s 4380KB
stdin
Standard input is empty
stdout
-a+b+c+d@.1z�U-1z�U.1z�U�����

T� � ���o�"1z�U%1z�U�"1z�U
�@a�9E+@Qz�UP�)1z�U`(1z�U8	���o���o����o�o�'1z�U���olp:E+�o:E+@s�9E+� ha�9E+pj�9E++1z�U&+1z�U6+1z�U@Mu:E+�kp:E+�H�9E+pg�9E+�D�9E+�+1z�Upj�9E+�+1z�U�+1z�U�+1z�U�+1z�U�@Qz�UW�9E+�	�9E+�	�9E+�@Qz�U@v�9E+�V�9E+`p�9E+�o�9E+p�9E+
stderr
*** Error in `./prog': free(): invalid pointer: 0x000055d77a513d88 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x70bcb)[0x2b453a741bcb]
/lib/x86_64-linux-gnu/libc.so.6(+0x76f96)[0x2b453a747f96]
/lib/x86_64-linux-gnu/libc.so.6(+0x7778e)[0x2b453a74878e]
./prog(+0xc87)[0x55d77a312c87]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf1)[0x2b453a6f12b1]
./prog(+0xd6a)[0x55d77a312d6a]
======= Memory map: ========
2b45399f1000-2b4539a14000 r-xp 00000000 fd:00 2840974                    /lib/x86_64-linux-gnu/ld-2.24.so
2b4539a14000-2b4539a18000 rw-p 00000000 00:00 0 
2b4539a21000-2b4539a26000 rw-p 00000000 00:00 0 
2b4539c14000-2b4539c15000 r--p 00023000 fd:00 2840974                    /lib/x86_64-linux-gnu/ld-2.24.so
2b4539c15000-2b4539c16000 rw-p 00024000 fd:00 2840974                    /lib/x86_64-linux-gnu/ld-2.24.so
2b4539c16000-2b4539c17000 rw-p 00000000 00:00 0 
2b4539c17000-2b4539d89000 r-xp 00000000 fd:00 2967755                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2b4539d89000-2b4539f89000 ---p 00172000 fd:00 2967755                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2b4539f89000-2b4539f93000 r--p 00172000 fd:00 2967755                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2b4539f93000-2b4539f95000 rw-p 0017c000 fd:00 2967755                    /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
2b4539f95000-2b4539f99000 rw-p 00000000 00:00 0 
2b4539f99000-2b453a09c000 r-xp 00000000 fd:00 2841003                    /lib/x86_64-linux-gnu/libm-2.24.so
2b453a09c000-2b453a29b000 ---p 00103000 fd:00 2841003                    /lib/x86_64-linux-gnu/libm-2.24.so
2b453a29b000-2b453a29c000 r--p 00102000 fd:00 2841003                    /lib/x86_64-linux-gnu/libm-2.24.so
2b453a29c000-2b453a29d000 rw-p 00103000 fd:00 2841003                    /lib/x86_64-linux-gnu/libm-2.24.so
2b453a29d000-2b453a2b3000 r-xp 00000000 fd:00 2840941                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2b453a2b3000-2b453a4b2000 ---p 00016000 fd:00 2840941                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2b453a4b2000-2b453a4b3000 r--p 00015000 fd:00 2840941                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2b453a4b3000-2b453a4b4000 rw-p 00016000 fd:00 2840941                    /lib/x86_64-linux-gnu/libgcc_s.so.1
2b453a4b4000-2b453a4cc000 r-xp 00000000 fd:00 2840960                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2b453a4cc000-2b453a6cb000 ---p 00018000 fd:00 2840960                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2b453a6cb000-2b453a6cc000 r--p 00017000 fd:00 2840960                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2b453a6cc000-2b453a6cd000 rw-p 00018000 fd:00 2840960                    /lib/x86_64-linux-gnu/libpthread-2.24.so
2b453a6cd000-2b453a6d1000 rw-p 00000000 00:00 0 
2b453a6d1000-2b453a866000 r-xp 00000000 fd:00 2841097                    /lib/x86_64-linux-gnu/libc-2.24.so
2b453a866000-2b453aa65000 ---p 00195000 fd:00 2841097                    /lib/x86_64-linux-gnu/libc-2.24.so
2b453aa65000-2b453aa69000 r--p 00194000 fd:00 2841097                    /lib/x86_64-linux-gnu/libc-2.24.so
2b453aa69000-2b453aa6b000 rw-p 00198000 fd:00 2841097                    /lib/x86_64-linux-gnu/libc-2.24.so
2b453aa6b000-2b453aa6f000 rw-p 00000000 00:00 0 
2b453c000000-2b453c021000 rw-p 00000000 00:00 0 
2b453c021000-2b4540000000 ---p 00000000 00:00 0 
55d77a312000-55d77a314000 r-xp 00000000 fd:00 23353346                   /home/35UuCm/prog
55d77a513000-55d77a514000 r--p 00001000 fd:00 23353346                   /home/35UuCm/prog
55d77a514000-55d77a515000 rw-p 00002000 fd:00 23353346                   /home/35UuCm/prog
55d77a78b000-55d77a7bd000 rw-p 00000000 00:00 0                          [heap]
7ffe6ada3000-7ffe6adc4000 rw-p 00000000 00:00 0                          [stack]
7ffe6adf3000-7ffe6adf5000 r-xp 00000000 00:00 0                          [vdso]
7ffe6adf5000-7ffe6adf7000 r--p 00000000 00:00 0                          [vvar]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]