結果

問題 No.3652 Range Bracket Sequence
コンテスト
ユーザー 👑 tails
提出日時 2026-08-31 00:49:37
言語 cLay
(20250308-1 + boost 1.92.0)
コンパイル:
clayc _filename_
実行:
./a.out
結果
AC  
実行時間 50 ms / 2,000 ms
+ 161µs
コード長 425 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 1,905 ms
コンパイル使用メモリ 192,460 KB
実行使用メモリ 12,736 KB
最終ジャッジ日時 2026-08-31 00:49:58
合計ジャッジ時間 7,586 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 57
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

struct S{
	int c;
	int o;
};

S segtree_ph_func(S a,S b){
	S r;
	if(a.o<b.c){
		r.c=a.c+b.c-a.o;
		r.o=b.o;
	}else{
		r.c=a.c;
		r.o=a.o-b.c+b.o;
	}
	return r;
}


{
	ll@n,@q;
	segtree_ph<S>a;
	a.malloc(n,1);
	rep(i,n){
		char@c;
		a[i].c=c==')';
		a[i].o=c=='(';
	}
	a.build();
	rep(q){
		ll@u;
		if(u==1){
			ll@x--,@t;
			a.change(x,S{(t!=1),(t==1)});
		}else{
			ll@l--,@r;
			S s=a.get(l,r);
			wt(r-l-s.c-s.o);
		}
	}
}
0