問題一覧 > 通常問題

No.2404 Vertical Throw Up

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 51
作問者 : 👑 獅子座じゃない人 / テスター : 👑 amentorimaru
7 ProblemId : 9819 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-08-03 22:03:55

問題文

ルエラちゃんは、ボールの鉛直投げ上げ運動の実験を行いました。この実験では、投げ上げるボールを途中で増やしながら、指定された時刻でのボールの変位の最大値を順に実験レポートに書くことになっていました。しかし、ルエラちゃんは実験結果を残していなかったため、予想で実験レポートを書くことにしました。

ルエラちゃんの住んでいる星の重力加速度は 2a2a で与えられます。ボールの鉛直投げ上げ運動の変位は時刻の 22 次関数で表され、 22 次の係数が a-a であるとします。すなわち、ボールが投げ上げられて戻るまでの間の時刻 tt でのボールの変位 hh は、ある定数 b,cb,c を用いて h=at2+bt+ch=-at^2+bt+c と表せます。

このとき、以下の QQ 個のクエリ {qi}\{q_i\} に答えてください。

  • 1 s t 実験するボールを追加する。ボールは時刻 ss のとき変位 00 から投げ上げられ、時刻 tt で変位 00 に戻ってくる。
  • 2 t ボールの時刻 tt での変位の最大値を出力して改行する。ただし、時刻 tt で鉛直投げ上げ運動をしているボールがない場合、0を出力して改行する。

なお、この問題の制約下で、出力する値が全て整数となることが証明できます。

また、クエリ 22 の形式で与えられる tt はクエリの順に従った広義単調増加であるものとします。すなわち qi (1iQ)q_i\ (1\leq i\leq Q) が「 2 ti2\ t_i 」でクエリ qj (1jQ)q_j\ (1\leq j\leq Q) が「 2 tj2\ t_j 」であるとき、 i<ji\lt j ならば titjt_i\leq t_j が成立します。

入力

aa
QQ
q1q_1
q2q_2
q3q_3
\vdots
qQq_Q

クエリ qi (1iQ)q_i\ (1\leq i\leq Q) は以下のどちらかの形式で与えられます。

1 s t1\ s\ t
2 t2\ t

  • 入力は全て整数
  • 1a1001\leq a\leq 100
  • 2Q1052\leq Q\leq 10^5
  • 0s1080\leq s\leq 10^8
  • 0t1080\leq t\leq 10^8
  • 1 s tの形式のクエリについて、 s<ts\lt t
  • 2 tの形式のクエリで与えられる tt は広義単調増加
  • クエリ q1q_1 は、1 s tの形式
  • 2 tの形式のクエリが存在する

出力

2 tの形式のそれぞれのクエリについて、時刻 tt での変位の最大値または 00 を出力して改行してください。

サンプル

サンプル1
入力
5
7
1 0 2
2 1
1 0 4
2 1
2 3
1 1 6
2 4
出力
5
15
15
30

クエリ q1q_1 では、時刻 00 のとき変位 00 から投げ上げられ、時刻 22 で変位 00 に戻ってくるボールを追加します。このボールの時刻 tt での変位 h1h_1h1=5t2+10th_1=-5t^2+10t と表せます。 t=1t=1 を代入すると h1(1)=5h_1(1)=5 となるため、クエリ q2q_2 に対する出力は5となります。

クエリ q3q_3 では、時刻 00 のとき変位 00 から投げ上げられ、時刻 44 で変位 00 に戻ってくるボールを追加します。このボールの時刻 tt での変位 h2h_2h2=5t2+20th_2=-5t^2+20t と表せます。 t=1t=1 を代入すると h1(1)=5, h2(1)=15h_1(1)=5,\ h_2(1)=15 となるため、クエリ q4q_4 に対する出力は15となります。

サンプル2
入力
5
3
1 0 2
1 4 6
2 3
出力
0

2 tの形式のクエリで与えられる時刻 tt に、鉛直投げ上げ運動をしているボールが存在しない場合もあります。

サンプル3
入力
3
10
1 2 4
2 1
2 3
2 4
1 0 5
2 4
2 6
1 1 9
2 6
2 8
出力
0
3
0
12
0
45
21

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。