結果

問題 No.3652 Range Bracket Sequence
コンテスト
ユーザー 👑 tails
提出日時 2026-08-28 22:34:53
言語 cLay
(20250308-1 + boost 1.90.0)
コンパイル:
clayc _filename_
実行:
./a.out
結果
AC  
実行時間 58 ms / 2,000 ms
+ 987µs
コード長 504 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 3,431 ms
コンパイル使用メモリ 194,468 KB
実行使用メモリ 11,136 KB
最終ジャッジ日時 2026-08-28 22:35:19
合計ジャッジ時間 9,206 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 57
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

struct S{
	int v;
	int c;
	int o;
};

S segtree_ph_func(S a,S b){
	S r;
	if(a.o<b.c){
		r.v=a.v+b.v+a.o;
		r.c=a.c+b.c-a.o;
		r.o=b.o;
	}else{
		r.v=a.v+b.v+b.c;
		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;
		S s;
		s.v=0;
		s.c=c==')';
		s.o=c=='(';
		a[i]=s;
	}
	a.build();
	rep(q){
		ll@u;
		if(u==1){
			ll@x--,@t;
			S s;
			s.v=0;
			s.c=t==2;
			s.o=t==1;
			a.change(x,s);
		}else{
			ll@l--,@r;
			wt(a.get(l,r).v*2);
		}
	}
}
0