/ Vijos / 题库 /

变换序列

变换序列

描述

对于N个整数0,1,…,N-1,一个变换序列T可以将i变成Ti,其中:Ti∈{0,1,…,N-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<=10000),表示序列的长度。
接下来的一行为N个整数Di,其中:Di表示i和Ti之间的距离。

输出格式

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

样例1

样例输入1

5
1 1 2 2 1

样例输出1

1 2 4 0 3

限制

每个测试点1s。

来源

NOI2009 Day 1

信息

ID
1820
难度
4
分类
(无)
标签
递交数
133
已通过
58
通过率
44%
被复制
2
上传者

相关

在下列训练计划中:

RP++分类题库