結果

問題 No.3503 Brackets Stack Query 2
コンテスト
ユーザー Azaki
提出日時 2026-04-18 03:36:22
言語 C++23
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
MLE  
実行時間 -
コード長 1,591 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,978 ms
コンパイル使用メモリ 162,892 KB
実行使用メモリ 1,306,752 KB
最終ジャッジ日時 2026-04-18 03:36:52
合計ジャッジ時間 7,625 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 1
other AC * 12 MLE * 2 -- * 16
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <vector>

using namespace std;

// Cấu trúc để lưu lại trạng thái stack tại mỗi bước
vector<char> st[800005]; 

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int Q;
    cin >> Q;

    int cur_len = 0; // Độ dài của chuỗi S thực tế
    // st[0] mặc định là stack rỗng

    for (int i = 1; i <= Q; ++i) {
        int type;
        cin >> type;

        if (type == 1) {
            char c;
            cin >> c;
            
            // Lấy stack trạng thái từ bước trước đó (S có độ dài cur_len)
            st[cur_len + 1] = st[cur_len];
            cur_len++;
            
            vector<char>& current_st = st[cur_len];
            current_st.push_back(c);
            
            // Kiểm tra triệt tiêu: Nếu 3 ký tự cuối là '(', '|', ')'
            int s_size = current_st.size();
            if (s_size >= 3 && 
                current_st[s_size - 1] == ')' && 
                current_st[s_size - 2] == '|' && 
                current_st[s_size - 3] == '(') {
                
                current_st.pop_back();
                current_st.pop_back();
                current_st.pop_back();
            }
        } else {
            // Loại 2: Quay lại trạng thái trước đó
            cur_len--;
        }

        // Nếu stack tại trạng thái hiện tại rỗng thì là dãy tốt
        if (st[cur_len].empty()) {
            cout << "Yes\n";
        } else {
            cout << "No\n";
        }
    }

    return 0;
}
0