第二十六届全国信息学奥林匹克竞赛
NOI 2009
第一试
竞赛时间:2009年7月27日上午8:00-13:00
题目名称	变换序列	诗人小G	二叉查找树
目录	transform	poet	treapmod
可执行文件名	transform	poet	treapmod
输入文件名	transform.in	poet.in	treapmod.in
输出文件名	transform.out	poet.out	treapmod.out
每个测试点时限	1秒	30 秒	1 秒
测试点数目	10	10	10
每个测试点分值	10	10	10
是否有部分分	无	有	无
题目类型	传统	传统	传统
提交源程序须加后缀
对于Pascal语言	transform.pas	poet.pas	treapmod.pas
对于C    语言	transform.c	poet.c	treapmod.c
对于C++  语言	transform.cpp	poet.cpp	treapmod.cpp
注意:最终测试时,所有编译命令均不打开任何优化开关
变换序列
【问题描述】
	对于N个整数0, 1, ……, N-1,一个变换序列T可以将i变成Ti,其中且。,定义x和y之间的距离。给定每个i和Ti之间的距离D(i,Ti),你需要求出一个满足要求的变换序列T。如果有多个满足条件的序列,输出其中字典序最小的一个。
	说明:对于两个变换序列S和T,如果存在p【输入文件】
	输入文件transform.in的第一行包含一个整数N,表示序列的长度。接下来的一行包含N个整数Di,其中Di表示i和Ti之间的距离。
【输出文件】
	输出文件为transform.out。
如果至少存在一个满足要求的变换序列T,则输出文件中包含一行N个整数,表示你计算得到的字典序最小的T;否则输出”No Answer”(不含引号)。注意:输出文件中相邻两个数之间用一个空格分开,行末不包含多余空格。
【输入样例】
5
1 1 2 2 1
【输出样例】
1 2 4 0 3
【数据规模和约定】
20%的数据中N≤50;
60%的数据中N≤500;
100%的数据中N≤10000。
诗人 
                        输出/文件/10/输入/之间/Ti/整数/poet/包含/数据/  
                        
                          输出/文件/10/输入/之间/Ti/整数/poet/包含/数据/  
                        
                        
                        
                        
                    -->