筑波大学プログラミングコンテスト2023
コンテスト日時
2023/09/03 (Su) 14:00 - 17:00

B - Dangerous Drive

Milk
2
s
1024
MB
200

問題文

筑波大学を通って東西に無限に続く道路があり、道路の各点は xx 座標で表されます。x=ax=a の点は筑波大学から aa km\text{km} 東に進んだ点(a<0a<0 の場合は a|a| km\text{km} 西に進んだ点)であることを意味します。また、この道路の制限速度は X km/hX\ \text{km/h} です。

この道路上に NN 台の車が走っており、いま ii 台目の車は x=Aix=A_i の地点を SiS_i km/h\text{km/h} で東向きに走っています。
これらの車が速度を変えずに走り続けたとき、101010010^{10^{100}} 時間後までに衝突している車が存在するか判定し、存在する場合は Dangerous と出力してください。
そうでないとき、制限速度を超えている車がある場合は Over と出力してください。
衝突せず、制限速度を超えている車も存在しない場合は Safe と出力してください。

制約

すべてのテストケースについて、以下の制約を満たす。

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • Ai109|A_i| \leq 10^9 (1iN)(1 \leq i \leq N)
  • 1Si1091 \leq S_i \leq 10^9 (1iN)(1 \leq i \leq N)
  • AiAjA_i \neq A_j (ij)(i \neq j)
  • 1X1091 \leq X \leq 10^9
  • 入力はすべて整数

部分点

この問題には、部分点が設定されている。以下の条件を満たすテストケースにすべて正解したとき、記載された点数が与えられる。

  1. (55 点) A1<A2<<AN,S1<S2<<SNA_1 < A_2 < \cdots < A_N,\quad S_1 < S_2 < \cdots < S_N
  2. (1010 点) 1N2000,0A1<A2<<AN1 \leq N \leq 2000,\quad 0 \leq A_1 < A_2 < \cdots < A_N
  3. (2020 点) 1N20001 \leq N \leq 2000
  4. (4040 点) A1<A2<<ANA_1 < A_2 < \cdots < A_N
  5. (125125 点) 追加の制約はない。

入力

入力は以下の形式で標準入力から与えられる。

NN XX
A1A_1 S1S_1
A2A_2 S2S_2
\vdots
ANA_N SNS_N

出力

Dangerous, Over, Safe のうち答えとなる文字列を 1 行に出力せよ。

入力例 1
5 5 0 3 5 3 10 3 11 5 12 5
出力例 1
Safe

車が衝突することはありません。また、どの車も制限速度以下で走行しています。したがって、 Safe を出力します。
このテストケースは、部分点 2, 3, 4, 5 の条件を満たします。

入力例 2
5 5 0 1 5 3 10 3 11 2 12 5
出力例 2
Dangerous

西から数えて3台めの車が4台めの車に衝突します。したがって、 Dangerous を出力します。
このテストケースは、部分点 2, 3, 4, 5 の条件を満たします。

入力例 3
5 5 0 1 5 2 10 3 11 4 12 6
出力例 3
Over

車は衝突しません。最も東の車が制限速度を超えているため、 Over を出力します。
このテストケースは、部分点 1, 2, 3, 4, 5 の条件を満たします。