atcoder#TOYOTA2023SPRINGFINALD. Dual Rotation

Dual Rotation

题目描述

(0,1,,N1) (0,1,\cdots,N-1) の順列 P=(P0,P1,,PN1) P=(P_0,P_1,\cdots,P_{N-1}) が与えられます.

整数 a,b a,b (0  a,b  N1 0\ \leq\ a,b\ \leq\ N-1 ) に対して,順列 f(a,b) f(a,b) を次のように定義します.

  • f(a,b)=(q0,q1,,qN1) f(a,b)=(q_0,q_1,\cdots,q_{N-1}) とおいて,q(i+a (mod )N)=(Pi+b (mod )N) q_{(i+a\ \pmod\ N)}=(P_i+b\ \pmod\ N) (0  i  N1 0\ \leq\ i\ \leq\ N-1 ) と定める.

すべての a,b a,b に対し f(a,b) f(a,b) を求めると,N2 N^2 個の順列が得られます. これらの順列を辞書順でソートすることを考えます. ソートしたあと,先頭から K K 番目に位置している順列を求めてください.

数列の辞書順とは?数列 S = (S1,S2,,SS) S\ =\ (S_1,S_2,\ldots,S_{|S|}) が数列 T = (T1,T2,,TT) T\ =\ (T_1,T_2,\ldots,T_{|T|}) より辞書順で小さいとは、下記の 1. と 2. のどちらかが成り立つことを言います。 ここで、S, T |S|,\ |T| はそれぞれ S, T S,\ T の長さを表します。

  1. S < T |S|\ \lt\ |T| かつ $ (S_1,S_2,\ldots,S_{|S|})\ =\ (T_1,T_2,\ldots,T_{|S|}) $。
  2. ある整数 $ 1\ \leq\ i\ \leq\ \min\lbrace\ |S|,\ |T|\ \rbrace $ が存在して、下記の 2 2 つがともに成り立つ。
  • $ (S_1,S_2,\ldots,S_{i-1})\ =\ (T_1,T_2,\ldots,T_{i-1}) $
  • Si S_i Ti T_i より(数として)小さい。

输入格式

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

N N K K P0 P_0 P1 P_1 \cdots PN1 P_{N-1}

输出格式

答えとなる順列を,要素を空白区切りで出力せよ.

2 2
0 1
0 1
4 6
0 2 1 3
1 2 0 3
10 79
6 5 9 8 7 1 3 2 0 4
7 9 8 2 1 0 4 6 5 3

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  K  N2 1\ \leq\ K\ \leq\ N^2
  • (P0,P1,,PN1) (P_0,P_1,\cdots,P_{N-1}) (0,1,,N1) (0,1,\cdots,N-1) の順列である.
  • 入力される値はすべて整数である

Sample Explanation 1

f(a,b) f(a,b) として以下の 4 4 つが考えられます. - f(0,0)=(0,1) f(0,0)=(0,1) - f(0,1)=(1,0) f(0,1)=(1,0) - f(1,0)=(1,0) f(1,0)=(1,0) - f(1,1)=(0,1) f(1,1)=(0,1) これらの順列を辞書順に並べると,(0,1),(0,1),(1,0),(1,0) (0,1),(0,1),(1,0),(1,0) となります. よって,この中で 2 2 番目に位置する (0,1) (0,1) が答えになります.