#include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int Q; if (!(cin >> Q)) return 0; vector s; // 現在の文字列 S を保持するスタック for (int i = 0; i < Q; ++i) { int type; cin >> type; if (type == 1) { char c; cin >> c; s.push_back(c); // 追加された瞬間に (|) が完成しているかチェック int sz = s.size(); if (sz >= 3 && s[sz - 3] == '(' && s[sz - 2] == '|' && s[sz - 1] == ')') { // 完成していたら 3 文字取り除く s.pop_back(); s.pop_back(); s.pop_back(); } } else { // クエリ2: 現在の S の末尾を 1 文字削除 // 消去判定は「追加時」のみなので、ここでは削除するだけ if (!s.empty()) { s.pop_back(); } } // 判定 if (s.empty()) { cout << "Yes\n"; } else { cout << "No\n"; } } return 0; }