#NOI20091A. 变换序列
变换序列
Description
对于N个整数0, 1, ……, N -1,一个变换序列T可以将i变成T ~i~ ,其中 且。 ,定义x和y之间的距离。给定每个i和Ti之间的距离 D (),你需要求出一个满足要求的变换序列 T 。如果有多个满足条件的序列,输出其中字典序最小的一个。 说明 :对于两个变换序列S和 T ,如果存在 p < N ,满足对于 i =0,1,…… p -1,且 ,我们称 S 比 T 字典序小。
Format
Input
输入文件transform.in的第一行包含一个整数 N ,表示序列的长度。接下来的一行包含N个整数,其中表示 i 和之间的距离。
Output
输出文件为transform.out。 如果至少存在一个满足要求的变换序列 T ,则输出文件中包含一行N个整数,表示你计算得到的字典序最小的 T ;否则输出”No Answer”(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。
Samples
5
1 1 2 2 1
1 2 4 0 3
Limitation
【数据规模和约定】 20%的数据中 N ≤50; 60%的数据中 N ≤500; 100%的数据中 N ≤10000。