結果

問題 No.3503 Brackets Stack Query 2
コンテスト
ユーザー askr58
提出日時 2026-04-17 21:12:53
言語 C++23
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 663 ms / 2,000 ms
+ 46µs
コード長 734 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,159 ms
コンパイル使用メモリ 338,236 KB
実行使用メモリ 6,272 KB
最終ジャッジ日時 2026-09-07 22:47:36
合計ジャッジ時間 30,427 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_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