0867 - tubequery

時間制限 1 秒 / メモリ制限 64 MB / 得点 100 / Writer platypus / x 5 / 統計 /

    タグ:

TLE
1sec
MLE
64MB
得点
100

問題

P君は今人気のおもちゃ「チューブコースター」で遊んでいる。
このおもちゃは、様々な種類のチューブを組み合わせて、その中にビー玉を入れて転がして遊ぶものである。
チューブには一つの「投入口」と「排出口」があり、ビー玉は投入口から排出口に向かって転がる。
また、チューブは伸縮性のある素材で作られており、片方の排出口ともう片方の投入口を結合させたり、
連なったチューブの両端をつなげてを一つの輪にすることもできる。
チューブはすべて長さ1で、$n$個のチューブを結合させると長さ$n$の連なったチューブになる。

チューブには3つのタイプA,B,Cがある。どのチューブもある固有の自然数$v$が定められており、入ってきたビー玉をある一定の規則に従って加速させたり減速させたりする。

タイプAのチューブは、ビー玉が入ってきた速度が$v$以上の場合は$v$になるまで減速させて排出する。
タイプBのチューブは、ビー玉が入ってきた速度が$v$以下の場合は$v$になるまで加速させて排出する。
タイプCのチューブは、速度$x$で入ってきたビー玉を速度$x+v$にして排出する。

P君は今から$Q$個のクエリを実行する。各クエリは下の2つのうちいずれかである。

クエリ1:チューブ結合クエリ
このクエリでは3つの値$R$,$type$,$v$が与えられる。
P君は$R$番目のクエリで結合させたチューブの排出口とその次の投入口の間にタイプ$type$で固有の値が$v$のチューブを挿入する。
その結果、長さ$L$の輪っかだったチューブの連なりは長さ$L+1$の輪っかになる。
ただし、一番最初のクエリのみ、ただこのチューブのみ排出口と投入口をつなぎ合わせ、長さ1の輪っかを作る。(この時$R$の値は意味を持たない)
クエリ2:速度クエリ
このクエリでは3つの値$S$,$L$,$v$が与えられる。
P君は$S$番目のクエリで結合させたチューブにビー玉が速度$v$で突入し、長さ$L$通過した直後の速度を計測する。
ただし、$L$の値によってはビー玉が輪っかの中を1周し同じチューブを2度以上通過する可能性がある。

以上の二つのクエリを処理し、クエリ2の結果を出力するプログラムを作りなさい。

入力

入力は以下のように標準入力で与えられる。

$Q$
$com_1$ $x_1$ $y_1$ $z_1$
$com_2$ $x_2$ $y_2$ $z_2$
:
$com_Q$ $x_Q$ $y_Q$ $z_Q$

ただし$x_i$,$y_i$,$z_i$は、
$com_i=1$の場合はそれぞれ$R$,$type$,$v$、
$com_i=2$の場合はそれぞれ$S$,$L$,$v$である。

出力

クエリ2の答えを改行区切りで出力せよ。

制約

すべてのテストケースは以下の制約を満たす。

・$1 \le Q \le 200000$
・$1 \le v \le 10^9$
・$1 \le L \le 10^9$
・$R$,$S$は現在のクエリより前のチューブ結合クエリの番号である。(ただし最初のクエリに限り、$R=-1$である。)
・$type$は一文字で、A,B,Cのいずれかである。
・最初のクエリはクエリ1(チューブ結合クエリ)である。

この問題には部分点が設定されている。以下の小課題について正解した場合、対応する部分点が与えられる。

小課題1(+20点)

・$1 \le L \le 100$
・$R$は直前のクエリ1の番号である

小課題2(+20点)

・$1 \le L \le 100$

入出力例

入力例1

3
1 -1 A 10
2 1 1 8
2 1 1 12

出力例1

8
10

解説

まずP君は、速度が10以上の場合は10まで下げるチューブを用意し、このチューブで長さ1の輪っかを作る。
その後、このチューブをビー玉が速度8で突入した場合、速度はそのまま8であるため、2つ目のクエリの答えは8である。
さらに、このチューブをビー玉が速度12で突入した場合、速度は10にまで減速するので、3つ目のクエリの答えは10である。

14:08訂正:誤った文章を修正

入力例2

7
1 -1 C 1
2 1 100 1
1 1 A 10
1 1 B 12
2 1 3 1
2 1 2 1
2 1 100 1

出力例2

101
10
12
11

解説

この入力は小課題1の制約を満たさない。

入力例3

8
1 -1 A 142857142
2 1 1000000000 1
1 1 B 123412341
2 3 999999999 123123123
1 3 C 12121212
1 5 C 32123123
2 6 555555 666666
2 5 777777 888888

出力例3

1
123412341
142857142
154978354

解説

この入力は小課題1・2の制約を満たさない。