atcoder#ABC250C. [ABC250C] Adjacent Swaps

[ABC250C] Adjacent Swaps

配点 : 300300

問題文

NN 個のボールが左右一列に並んでいます。初め、左から i(1iN)i \, (1 \leq i \leq N) 番目のボールには整数 ii が書かれています。

高橋君は QQ 回の操作を行いました。 i(1iQ)i \, (1 \leq i \leq Q) 回目に行われた操作は次のようなものです。

  • 整数 xix_i が書かれているボールをその右隣のボールと入れ替える。ただし、整数 xix_i が書かれているボールが元々右端にあった場合、代わりに左隣のボールと入れ替える。

操作後において左から i(1iN)i \, (1 \leq i \leq N) 番目のボールに書かれている整数を aia_i とします。 a1,,aNa_1,\ldots,a_N を求めてください。

制約

  • 2N2×1052 \leq N \leq 2 \times 10^5
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1xiN1 \leq x_i \leq N
  • 入力は全て整数

入力

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

NN QQ

x1x_1

\vdots

xQx_Q

出力

a1,,aNa_1,\ldots,a_N を空白区切りで出力せよ。

5 5
1
2
3
4
5
1 2 3 5 4

操作は以下のように行われます。

  • 11 と書かれたボールを右隣のボールと入れ替える。ボールに書かれた整数は左から 2,1,3,4,52,1,3,4,5 となる。
  • 22 と書かれたボールを右隣のボールと入れ替える。ボールに書かれた整数は左から 1,2,3,4,51,2,3,4,5 となる。
  • 33 と書かれたボールを右隣のボールと入れ替える。ボールに書かれた整数は左から 1,2,4,3,51,2,4,3,5 となる。
  • 44 と書かれたボールを右隣のボールと入れ替える。ボールに書かれた整数は左から 1,2,3,4,51,2,3,4,5 となる。
  • 55 と書かれたボールは右端にあるので左隣のボールと入れ替える。ボールに書かれた整数は左から 1,2,3,5,41,2,3,5,4 となる。
7 7
7
7
7
7
7
7
7
1 2 3 4 5 7 6
10 6
1
5
2
9
6
6
1 2 3 4 5 7 6 8 10 9