题目描述
对于 N 个整数 0,1,⋯,N−1,一个变换序列 T 可以将 i 变成 Ti,其中 Ti∈{0,1,⋯,N−1} 且 ⋃i=0N−1{Ti}={0,1,⋯,N−1}。∀x,y∈{0,1,⋯,N−1},定义 x 和 y 之间的距离 D(x,y)=min{∣x−y∣,N−∣x−y∣}。给定每个 i 和 Ti 之间的距离 D(i,Ti),你需要求出一个满足要求的变换序列 T。如果有多个满足条件的序列,输出其中字典序最小的一个。
说明:对于两个变换序列 S 和 T,如果存在 p<N,满足对于 i=0,1,⋯p−1,Si=Ti 且 Sp<Tp,我们称 S 比 T 字典序小。
输入格式
第一行包含一个正整数 N,表示序列的长度。接下来的一行包含 N 个整数 Di,其中 Di 表示 i 和 Ti 之间的距离。
输出格式
如果至少存在一个满足要求的变换序列 T,则输出文件中包含一行 N 个整数,表示你计算得到的字典序最小的 T;否则输出 No Answer
(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。
5
1 1 2 2 1
1 2 4 0 3
提示
- 对于 30% 的数据,满足:N≤50;
- 对于 60% 的数据,满足:N≤500;
- 对于 100% 的数据,满足:N≤104。