[NOI2009] 变换序列

题目描述

对于$N$个整数$0, 1, \cdots, N-1$,一个变换序列$T$可以将$i$变成$T_i$,其中 $T_i \in \{ 0,1,\cdots, N-1\}$ 且 $\bigcup_{i=0}^{N-1} \{T_i\} = \{0,1,\cdots , N-1\}$。 ,$\forall x,y \in \{0,1,\cdots , N-1\}$,定义x和y之间的距离$D(x,y)=min\{|x-y|,N-|x-y|\}$ 。给定每个$i$和$T_i$之间的距离$D(i,T_i)$,你需要求出一个满足要求的变换序列T。如果有多个满足条件的序列,输出其中字典序最小的一个。 说明:对于两个变换序列$S$和$T$,如果存在$p<N$,满足对于$i=0,1,\cdots p-1$,$S_i=T_i$且$S_p<T_p$,我们称$S$比$T$字典序小。

输入输出格式

输入格式


第一行包含一个整数$N$,表示序列的长度。接下来的一行包含$N$个整数$D_i$,其中$D_i$表示$i$和$T_i$之间的距离。

输出格式


如果至少存在一个满足要求的变换序列$T$,则输出文件中包含一行$N$个整数,表示你计算得到的字典序最小的$T$;否则输出`No Answer`(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。

输入输出样例

输入样例 #1

5
1 1 2 2 1

输出样例 #1

1 2 4 0 3

说明

对于30%的数据,满足:N<=50; 对于60%的数据,满足:N<=500; 对于100%的数据,满足:N<=10000。