AT_arc200_c [ARC200C] Movie Theater
Description
正整数 $ N $ と長さ $ N $ の正整数列 $ L=(L_1,L_2,\ldots,L_N),R=(R_1,R_2,\ldots,R_N) $ が与えられます。ここで、 $ L_1,L_2,\ldots,L_N,R_1,R_2,\ldots,R_N $ は全て互いに異なることが保証されます。
ある映画館には $ N $ 個の席が左右一列に並んでいます。左から $ i $ 番目の席を席 $ i $ と呼びます。
この映画館に人 $ 1 $ から人 $ N $ までの $ N $ 人の人が訪れます。あなたは各人に席を $ 1 $ つずつ割り当てます。人 $ i $ に割り当てた席を $ P_i $ とすると、人 $ i $ は時刻 $ L_i $ に席 $ 1,2,\ldots,P_i-1 $ を横切って席 $ P_i $ に座り、時刻 $ R_i $ に席 $ 1,2,\ldots,P_i-1 $ を横切って席から離れます。
人 $ i $ の **不満度** を時刻 $ L_i $ から時刻 $ R_i $ までの間(ちょうど $ L_i,R_i $ は含まない)に他の人に席 $ P_i $ を横切られた回数とします。
人 $ 1 $ から人 $ N $ までの $ N $ 人の不満度の総和が最小となる $ (1,2,\ldots,N) $ の順列 $ P $ のうち辞書順最小のものを求めてください。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ N $ $ L_1 $ $ R_1 $ $ L_2 $ $ R_2 $ $ \vdots $ $ L_N $ $ R_N $
Output Format
$ T $ 行出力せよ。
$ i $ 行目には $ i $ 番目のテストケースについて、人 $ 1 $ から人 $ N $ までの $ N $ 人の不満度の総和が最小となる $ (1,2,\ldots,N) $ の順列 $ P $ のうち辞書順最小のものを半角スペース区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて、 $ P=(2,1,3) $ とすると以下のように進みます:
- 時刻 $ 1 $ :人 $ 1 $ が席 $ 2 $ に座る。
- 時刻 $ 2 $ :人 $ 2 $ が席 $ 1 $ に座る。
- 時刻 $ 3 $ :人 $ 2 $ が席 $ 1 $ から離れる。
- 時刻 $ 4 $ :人 $ 3 $ が席 $ 3 $ に座る。人 $ 1 $ の不満度が $ 1 $ 増える。
- 時刻 $ 5 $ :人 $ 1 $ が席 $ 2 $ から離れる。
- 時刻 $ 6 $ :人 $ 3 $ が席 $ 3 $ から離れる。
この際の全員の不満度の総和は $ 1 $ です。
不満度の総和を $ 1 $ より小さくすることはできず、さらに $ P=(2,1,3) $ が不満度の総和が $ 1 $ となる $ P $ のうち辞書順最小です。したがって、 $ P=(2,1,3) $ が答えとなります。
$ 2 $ つ目のテストケースについて、どのような順列 $ P $ に対しても全員の不満度の総和は $ 6 $ となります。
### Constraints
- $ 1\le T\le 500 $
- $ 1\le N\le 500 $
- $ 1\le L_i < R_i\le 2\times N $
- $ L_1,L_2,\ldots,L_N,R_1,R_2,\ldots,R_N $ は全て互いに異なる
- 全てのテストケースにおける $ N $ の総和は $ 500 $ 以下
- 入力される値は全て整数