#B. [NOI2009] 变换序列

    Type: RemoteJudge 1000ms 125MiB

[NOI2009] 变换序列

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

对于 NN 个整数 0,1,,N10, 1, \cdots, N-1,一个变换序列 TT 可以将 ii 变成 TiT_i,其中 Ti{0,1,,N1}T_i \in \{ 0,1,\cdots, N-1\}i=0N1{Ti}={0,1,,N1}\bigcup_{i=0}^{N-1} \{T_i\} = \{0,1,\cdots , N-1\}x,y{0,1,,N1}\forall x,y \in \{0,1,\cdots , N-1\},定义 xxyy 之间的距离 D(x,y)=min{xy,Nxy}D(x,y)=\min\{|x-y|,N-|x-y|\}。给定每个 iiTiT_i 之间的距离 D(i,Ti)D(i,T_i),你需要求出一个满足要求的变换序列 TT。如果有多个满足条件的序列,输出其中字典序最小的一个。

说明:对于两个变换序列 SSTT,如果存在 p<Np<N,满足对于 i=0,1,p1i=0,1,\cdots p-1Si=TiS_i=T_iSp<TpS_p<T_p,我们称 SSTT 字典序小。

输入格式

第一行包含一个正整数 NN,表示序列的长度。接下来的一行包含 NN 个整数 DiD_i,其中 DiD_i 表示 iiTiT_i 之间的距离。

输出格式

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

5
1 1 2 2 1

1 2 4 0 3

提示

  • 对于 30%30\% 的数据,满足:N50N \le 50
  • 对于 60%60\% 的数据,满足:N500N \le 500
  • 对于 100%100\% 的数据,满足:N104N \le 10 ^ 4

初二竞赛组作业——二分图建模

Not Claimed
Status
Done
Problem
5
Open Since
2024-4-12 8:00
Deadline
2024-5-26 23:59
Extension
24 hour(s)