[ARC106C] Solutions

题意翻译

对于两个区间 $[L_1:R_1]$,$[L_2:R_2]$,如果 $L_1 \leq R_2$ 且 $L_2 \leq R_1$,则定义这两个区间相交。 考虑以下问题 $P$。 有 $N$ 个区间 $[L_1: R_1]$,⋯, $[L_N:R_N]$,这 $2N$ 个整数互不相同,选择最多的区间,使它们互不相交。 $A$ 的算法:对所有区间按 $R_i$ 升序排列后,依次考虑 $i=1,2,…,N$,如果排名为 $i$ 的区间和目前已经选择的区间都不相交,则选择第 $i$ 个区间。 $B$ 的算法:对所有区间按 $L_i$ 升序排列后,依次考虑 $i=1,2,⋯,N$,如果排名为 $i$ 的区间和目前已经选择的区间都不相交,则选择第 $i$ 个区间。 给定整数 $N$ 和 $M$。请你构造出 $N$ 个区间,使得 $A$ 的答案 $-$ $B$ 的答案 $=M$。 无解输出 $-1$。

题目描述

[problemUrl]: https://atcoder.jp/contests/arc106/tasks/arc106_c $ 2 $ つの区間 $ [L_1:R_1],\ [L_2:R_2] $ について, $ L_1\ \leq\ R_2 $ かつ $ L_2\ \leq\ R_1 $ であるとき, この $ 2 $ つの区間が*交わる*と定義します。 以下の問題 $ P $ を考えます。 > 入力: $ N $ 個の区間 $ [L_1:\ R_1],\ \cdots,\ [L_N:R_N] $ $ L_1,\ L_2,\ \cdots,\ L_N,\ R_1,\ R_2,\ \cdots,\ R_N $は全て異なる。 出力: どの $ 2 $ つの区間も交わらないように選べる区間の最大数 高橋君は、以下のように動作するプログラムを実装しました。 > $ R_i $ の値が昇順となるように, 入力された区間を $ [L_{p_1}:R_{p_1}],\ [L_{p_2}:R_{p_2}],\ \cdots\ ,\ [L_{p_N}:R_{p_N}] $ と並び替える。 $ i\ =\ 1,\ 2,\ \cdots\ ,\ N $ について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 $ [L_{p_i}:R_{p_i}] $ を選ぶ。 選んだ区間の数を出力する。 一方、青木君は、以下のように動作するプログラムを実装しました。 > $ L_i $ の値が昇順となるように, 入力された区間を $ [L_{p_1}:R_{p_1}],\ [L_{p_2}:R_{p_2}],\ \cdots\ ,\ [L_{p_N}:R_{p_N}] $ と並び替える。 $ i\ =\ 1,\ 2,\ \cdots\ ,\ N $ について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 $ [L_{p_i}:R_{p_i}] $ を選ぶ。 選んだ区間の数を出力する。 整数 $ N,\ M $が与えられます。 $ N $ 個の区間から成る問題 $ P $ の入力であって、 $ $ (高橋君のプログラムが出力する値)\ -\ (青木君のプログラムが出力する値)\ =\ M $$ となるものを構築してください。

输入输出格式

输入格式


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

输出格式


条件を満たす $ N $ 個の区間が存在しない場合は `-1` と出力せよ。 存在する場合は、 以下のように $ N $ 行出力せよ。 > $ L_1 $ $ R_1 $ $ L_2 $ $ R_2 $ $ \vdots $ $ L_N $ $ R_N $ ただし, $ [L_1:R_1],\ \cdots,\ [L_N:R_N] $は以下の条件を満たさなければならない。 - $ 1\ \leq\ L_i\ <\ R_i\ \leq\ 10^9 $ - $ L_i\ \neq\ L_j $ ($ i\ \neq\ j $) - $ R_i\ \neq\ R_j $ ($ i\ \neq\ j $) - $ L_i\ \neq\ R_j $ - $ L_1,\ \cdots\ ,\ L_N\ ,\ R_1,\ \cdots\ ,\ R_N $ は整数 (21:46 追記) 答えが複数存在する場合は、どれを出力しても構わない。 出力の最後には必ず改行を行うこと。

输入输出样例

输入样例 #1

5 1

输出样例 #1

1 10
8 12
13 20
11 14
2 4

输入样例 #2

10 -10

输出样例 #2

-1

说明

### 制約 - 入力は全て整数 - $ 1\ \leq\ N\ \leq\ 2\ \times\ 10^5 $ - $ -N\ \leq\ M\ \leq\ N $ ### Sample Explanation 1 $ 5 $ つの区間を順に区間 $ 1 $ 、区間 $ 2 $ 、$ \cdots $ 、区間 $ 5 $ と名付けます。 高橋君のプログラムは以下のように動作します。 &gt; 区間を区間 $ 5 $ 、区間 $ 1 $ 、区間 $ 2 $ 、区間 $ 4 $ 、区間 $ 3 $ と並び替えます。 区間 $ 5 $ を選びます。 区間 $ 1 $ は選びません。(区間 $ 5 $ と交わっている為) 区間 $ 2 $ を選びます。 区間 $ 4 $ は選びません。 (区間 $ 2 $ と交わっている為) 区間 $ 3 $ を選びます。 以上より、高橋君のプログラムが出力する値は $ 3 $ となります。 青木君のプログラムは以下のように動作します。 &gt; 区間を区間 $ 1 $ 、区間 $ 5 $ 、区間 $ 2 $ 、区間 $ 4 $ 、区間 $ 3 $ と並び替えます。 区間 $ 1 $ を選びます。 区間 $ 5 $ は選びません。(区間 $ 1 $ と交わっている為) 区間 $ 2 $ は選びません。 (区間 $ 1 $ と交わっている為) 区間 $ 4 $ を選びます。 区間 $ 3 $ は選びません。 (区間 $ 4 $ と交わっている為) 以上より、青木君のプログラムが出力する値は $ 2 $ となります。 このとき、 $ 3\ -\ 2\ =\ 1\ \left(=\ M\ \right) $ であり、この $ 5 $ つの区間は条件を満たします。