fork download
  1. #include <iostream>
  2. #include <stack>
  3. using namespace std;
  4. int main() {
  5. stack<char>s;
  6. char ch;
  7. while (1) {
  8. int check = 1, start = 1;
  9. for (int i = 0; i < s.size(); i++)
  10. s.pop();
  11. while (1) {
  12. scanf("%c", &ch);
  13. if (start == 1 && ch == '.')
  14. start = -1;
  15. else if (start == 1)
  16. start = 0;
  17. else if (start == -1 && (ch == EOF || ch == '\n')) {
  18. start = 1;
  19. break;
  20. }
  21. else if (start == -1)
  22. start = 0;
  23. if (start == 0 && ch == '.') {
  24. scanf("%c", &ch);
  25. break;
  26. }
  27. if (ch == '(' || ch == '[')
  28. s.push(ch);
  29. else if (ch == ')') {
  30. if (s.empty()) {
  31. check = 0;
  32. }
  33. else if (s.top() == '(') {
  34. s.pop();
  35. }
  36. else if (s.top() == '[') {
  37. check = 0;
  38. }
  39. }
  40. else if (ch == ']') {
  41. if (s.empty()) {
  42. check = 0;
  43. }
  44. else if (s.top() == '[') {
  45. s.pop();
  46. }
  47. else if (s.top() == '(') {
  48. check = 0;
  49. }
  50. }
  51. }
  52. if (start == 1)
  53. break;
  54. if (check == 0 || !s.empty())
  55. cout << "no" << '\n';
  56. else
  57. cout << "yes" << '\n';
  58. }
  59. return 0;
  60. }
Success #stdin #stdout 0.01s 5476KB
stdin
[[.
].
.
stdout
no
yes