#arc106c. [arc106_c]Solutions
[arc106_c]Solutions
問題文
つの区間 \[L_1:R_1\], \[L_2:R_2\] について, かつ であるとき, この つの区間が_交わる_と定義します。
以下の問題 を考えます。
入力: 個の区間 \[L_1: R_1\], \\cdots, \[L_N:R_N\] は全て異なる。 出力: どの つの区間も交わらないように選べる区間の最大数
高橋君は、以下のように動作するプログラムを実装しました。
の値が昇順となるように, 入力された区間を $\[L_{p_1}:R_{p_1}\], \[L_{p_2}:R_{p_2}\], \\cdots , \[L_{p_N}:R_{p_N}\]$ と並び替える。 について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 \[L_{p_i}:R_{p_i}\] を選ぶ。 選んだ区間の数を出力する。
一方、青木君は、以下のように動作するプログラムを実装しました。
の値が昇順となるように, 入力された区間を $\[L_{p_1}:R_{p_1}\], \[L_{p_2}:R_{p_2}\], \\cdots , \[L_{p_N}:R_{p_N}\]$ と並び替える。 について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 \[L_{p_i}:R_{p_i}\] を選ぶ。 選んだ区間の数を出力する。
整数 が与えられます。 個の区間から成る問題 の入力であって、
となるものを構築してください。
制約
- 入力は全て整数
入力
入力は以下の形式で標準入力から与えられる。
出力
条件を満たす 個の区間が存在しない場合は -1
と出力せよ。
存在する場合は、 以下のように 行出力せよ。
ただし, \[L_1:R_1\], \\cdots, \[L_N:R_N\]は以下の条件を満たさなければならない。
- ()
- ()
- は整数 (21:46 追記)
答えが複数存在する場合は、どれを出力しても構わない。
出力の最後には必ず改行を行うこと。
入力例 1
5 1
出力例 1
1 10
8 12
13 20
11 14
2 4
つの区間を順に区間 、区間 、 、区間 と名付けます。
高橋君のプログラムは以下のように動作します。
区間を区間 、区間 、区間 、区間 、区間 と並び替えます。 区間 を選びます。 区間 は選びません。(区間 と交わっている為) 区間 を選びます。 区間 は選びません。 (区間 と交わっている為) 区間 を選びます。
以上より、高橋君のプログラムが出力する値は となります。
青木君のプログラムは以下のように動作します。
区間を区間 、区間 、区間 、区間 、区間 と並び替えます。 区間 を選びます。 区間 は選びません。(区間 と交わっている為) 区間 は選びません。 (区間 と交わっている為) 区間 を選びます。 区間 は選びません。 (区間 と交わっている為)
以上より、青木君のプログラムが出力する値は となります。
このとき、 であり、この つの区間は条件を満たします。
入力例 2
10 -10
出力例 2
-1