結果

問題 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 -fplugin=/usr/lib/yukicoder/noavx512-gcc15.so -lm -std=c++23 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 1,769 ms / 2,000 ms
+ 495µs
コード長 734 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,339 ms
コンパイル使用メモリ 341,028 KB
実行使用メモリ 9,900 KB
最終ジャッジ日時 2026-10-17 02:52:17
合計ジャッジ時間 69,596 ms
ジャッジサーバーID
(参考情報)
judge5_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 31
権限があれば一括ダウンロードができます

ソースコード

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