TSG LIVE! 13 プログラミングコンテスト
コンテスト日時
2024/11/23 (Sa) 13:05 - 14:45

D - Can you see those skyscrapers?

Ceylon
2
s
1024
MB
300

問題文

Writerの想定解に誤りがございました.大変申し訳ございません.
現在修正作業が完了し,正しい正誤判定がなされます.

sqrt10 くんは南北方向と高さ方向の 2 次元平面内にいます.南北方向に $N$ 個のビル $1, \dots, N$ がこの順に北から一直線に,重なることなく間を空けて並んでいます.ビル $i\ (i=1, \dots, N)$ の高さは $h_i$, 北端の座標は $a_i$, 南端の座標は $b_i$ です.

sqrt10 くんはビル $K\ (1\leq K\leq N)$ の屋上にいます.sqrt10 くんはビルが好きなので,屋上からビルが何個見えるか数えています.しかし,手前にあるビルにより奥のビルが隠されてしまっている(完全に重なって見えている場合も含みます)場合,奥のビルは見ることができません.sqrt10 くんはこのビルの屋上の上(つまり,区間 $[a_K, b_K]$)を自由に移動できるとして,見ることのできるビルはビル $K$ の他に何個ありますか? なお,ビル $K$ の屋上の上のある 1 ヶ所を固定して,そこから見ることのできるビルの数を数えるのではなく,各ビルで同じとは限らない,少なくとも 1 ヶ所から見ることのできるビルの数を数えてください.

ただし,sqrt10 くんの目線の高さはビル $K$ の屋上の高さから 1 高いところにある ものとします.また,sqrt10 くんの南北方向の身体の幅は 0 であるとして構いません.sqrt10 くんはとても目が良いので,どんなに遠くてもビルをはっきりと見ることができます.

制約

  • 入力はすべて整数
  • $2 \leq N\leq 10^5$
  • $1 \leq K \leq N$
  • $1 \leq h_i, a_i, b_i \leq 10^6\ (1\leq i\leq N)$
  • $a_i<b_i\ (1\leq i\leq N)$
  • $b_i<a_{i+1}\ (1\leq i\leq N-1)$

入力

$N\ K$
$h_1\ a_1\ b_1$
$\vdots$
$h_N\ a_N\ b_N$

出力

見ることができるビルの個数が何個か,整数で出力してください.

入力例 1
5 3 14 1 3 12 4 5 8 6 10 7 12 14 5 15 16
出力例 1
3

ビル 2,ビル 4 が見られることはすぐわかります.ビル 1 については,座標 7 にいてもビル 2 に隠れて見えませんが,例えば座標 9 に移動すれば見ることができます(目線の高さは $8+1=9$ にあることに注意してください).ビル 5 については,見下ろす形になりますが,どこにいてもビル 4 に隠されて見ることができません.よってビル 3 以外に見ることができるのはビル 1, 2, 4 の 3 つです.

下の図では,ビル 3 の上の座標 9.5 からビル 1, 2, 4 が見えてる様子を表しています.
Image from Gyazo

入力例 2
5 3 14 1 3 12 4 5 8 6 10 12 11 12 14 13 15
出力例 2
4

ビル 1 とビル 4 を同時に見ることができる場所は存在しませんが,別々に見ることができる場所はそれぞれ存在するので,いずれも「見ることができる」ことになります.

入力例 3
3 1 5 1 2 6 3 4 6 5 6
出力例 3
1

ビル 1 の上のどこにいても,ビル 3 はビル 2 にぴったり重なって見えます.このような場合ビル 3 は見えることになりません.

提出
C++23 (g++ 12.2.0)