fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. string s;
  6. stack < char > st;
  7. bool was = true;
  8. int ans = 0;
  9.  
  10. cin >> s;
  11. int i = 0;
  12. while (i < s.size()){
  13. if (s[i] != '(' && s[i] != '{' && s[i] != '[' && s[i] != '<')
  14. s.erase(i,1), i--;
  15. else
  16. if (s[i] != ')' && s[i] != '}' && s[i] != ']' && s[i] != '>')
  17. s.erase(i,1), i--;
  18. cout << s << endl;
  19. i++;
  20. }
  21.  
  22. for (int i = 0; i < s.size(); i++){
  23.  
  24. if (s[i] == '(' || s[i] == '{' || s[i] == '[' || s[i] == '<') st.push(s[i]);
  25.  
  26. else
  27. if (!st.empty() && s[i] == ')' && st.top() == '(' )
  28. st.pop();
  29. else
  30. if (!st.empty() && s[i] == '}' && st.top() == '{' )
  31. st.pop();
  32. else
  33. if (!st.empty() &&s[i] == ']' && st.top() == '[')
  34. st.pop();
  35. else
  36. if (!st.empty() && s[i] == '>' && st.top() == '<')
  37. st.pop();
  38. else
  39. was = false;
  40.  
  41. }
  42.  
  43.  
  44. if (was == false) cout << "NO", exit(0);
  45.  
  46. if (st.empty())
  47. cout << "YES" ;
  48. else
  49. cout << "NO";
  50. }
Success #stdin #stdout 0s 15240KB
stdin
<()asd[]asd>asd
stdout
()asd[]asd>asd
)asd[]asd>asd
asd[]asd>asd
sd[]asd>asd
d[]asd>asd
[]asd>asd
]asd>asd
asd>asd
sd>asd
d>asd
>asd
asd
sd
d

YES