<file_sep># H1. Правильная скобочная последовательность



Рассмотрим последовательность, состоящую из круглых, квадратных и фигурных скобок. Программа дожна определить, является ли данная скобочная последовательность правильной.


## Формат ввода

В единственной строке записана скобочная последовательность, содержащая не более 100000 скобок.


## Формат вывода

Если данная последовательность правильная, то программа должна вывести строку **yes**, иначе строку *no*.

### Пример 1
| Ввод   |  Вывод |
|--------|--------|
|  ()[]  |  yes   |

### Пример 2
|Ввод   |   Вывод |
|-------|---------|
| ([)]  |    no   |
<file_sep>#include <iostream>

#include <stack>

using namespace std;

void solve(string &s){

   stack<char> cur;

   for(int i = 0; i < s.size(); i++){

       if(!cur.empty() && ((cur.top() == '(' && s[i] == ')') || (cur.top() == '{' && s[i] == '}') || (cur.top() == '[' && s[i] == ']')))

           cur.pop();

       else cur.push(s[i]);

   }

   if(cur.empty()) cout << "YES";

   else cout << "NO";

}

signed main() {

   string str;

   cin >> str;

   solve(str);

}
