結果

問題 No.3503 Brackets Stack Query 2
コンテスト
ユーザー askr58
提出日時 2026-04-17 21:12:53
言語 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
結果
AC  
実行時間 1,214 ms / 2,000 ms
コード長 734 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,871 ms
コンパイル使用メモリ 337,708 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2026-04-17 21:13:40
合計ジャッジ時間 36,846 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 30
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int main(){
	int q;
	cin>>q;
	stack<char> st;
	stack<char> st2;
	while(q--){
		int t;
		cin>>t;
		if(t==1){
			char c;
			cin>>c;
			if(c==')'){
				if(st.size()>=2){
					char x=st.top();
					st.pop();
					char y=st.top();
					st.pop();
					if(y=='('&&x=='|'){
						st2.push('-');
					}else{
						st.push(y);
						st.push(x);
						st.push(c);
						st2.push(c);
					}
				}else{
					st.push(c);
					st2.push(c);
				}
			}else {
				st.push(c);
				st2.push(c);
			}
		}else{
			char c=st2.top();
			st2.pop();
			if(c=='-'){
				st.push('(');
				st.push('|');
			}else st.pop();
		}
		if(st.size()==0)cout<<"Yes"<<endl;
		else cout<<"No"<<endl;
	}
}
		
0