AT_abc260_d [ABC260D] Draw Your Cards
Description
[problemUrl]: https://atcoder.jp/contests/abc260/tasks/abc260_d
$ 1 $ から $ N $ が書かれた $ N $ 枚のカードが裏向きで積まれた山札があり、上から $ i $ 枚目のカードには整数 $ P_i $ が書かれています。
この山札を使って、以下の行動を $ N $ ターン繰り返します。
- 山札の一番上のカードを引いて、そこに書かれた整数を $ X $ とする。
- 場に見えている表向きのカードであって書かれた整数が $ X $ 以上であるもののうち、書かれた整数が最小のものの上に、引いたカードを表向きで重ねる。もし場にそのようなカードがなければ、引いたカードをどれにも重ねずに表向きで場に置く。
- その後、表向きのカードが $ K $ 枚重ねられた山が場にあればその山のカードを全て食べる。食べられたカードは全て場から消滅する。
各カードについて、何ターン目に食べられるか、あるいは最後まで食べられないかを求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ P_1 $ $ P_2 $ $ \dots $ $ P_N $
Output Format
$ N $ 行出力せよ。
そのうち $ i $ ($ 1\ \le\ i\ \le\ N $) 行目には、整数 $ i $ が書かれたカードについて、以下のように出力せよ。
- もし $ i $ が書かれたカードが食べられるなら、それが何ターン目であるかを整数として出力せよ。
- そうでないなら $ -1 $ と出力せよ。
Explanation/Hint
### 制約
- 入力は全て整数
- $ 1\ \le\ K\ \le\ N\ \le\ 2\ \times\ 10^5 $
- $ P $ は $ (1,2,\dots,N) $ の順列 ( $ (1,2,\dots,N) $ を並べ替えて得られる列 ) である
### Sample Explanation 1
この入力では、 $ P=(3,5,2,1,4),K=2 $ です。 - $ 1 $ ターン目に、 $ 3 $ が書かれたカードが他のカードに重ねられずに表向きで場に置かれます。 - $ 2 $ ターン目に、 $ 5 $ が書かれたカードが他のカードに重ねられずに表向きで場に置かれます。 - $ 3 $ ターン目に、 $ 2 $ が書かれたカードが $ 3 $ が書かれたカードの上に表向きで重ねられます。 - この時点で上から $ 2,3 $ が書かれたカードが表向きで重ねられた山が $ K=2 $ 枚に達したので、両カードは食べられます。 - $ 4 $ ターン目に、 $ 1 $ が書かれたカードが $ 5 $ が書かれたカードの上に表向きで重ねられます。 - この時点で上から $ 1,5 $ が書かれたカードが表向きで重ねられた山が $ K=2 $ 枚に達したので、両カードは食べられます。 - $ 5 $ ターン目に、 $ 4 $ が書かれたカードが他のカードに重ねられずに表向きで場に置かれます。 - $ 4 $ が書かれたカードは、最後まで食べられませんでした。
### Sample Explanation 2
$ K=1 $ である場合、全てのカードは場に置かれたターンに食べられます。