#P51118. 「SNOI2019」字符串

「SNOI2019」字符串

题目描述

给出一个长度为 nn 的由小写字母组成的字符串 aa,设其中第 ii 个字符为 ai(1in)a_i (1\le i\le n)

设删掉第 ii 个字符之后得到的字符串为 sis_i,请按照字典序对 s1,s2,,sns_1,s_2,\cdots,s_n 从小到大排序。若两个字符串相等,则认为编号小的字符串字典序更小。

输入格式

第一行一个整数 nn

第二行一个长为 nn 的由小写字母组成的字符串 aa

输出格式

输出一行 nn 个整数 k1,k2,,knk_1, k_2, \dots , k_n,用空格隔开。表示 sk1<sk2<<skns_{k_1}< s_{k_2} < \dots < s_{k_n}

样例

7
aabaaab
3 7 4 5 6 1 2

s1=s2=abaaabs3=aaaaabs4=s5=s6=aabaabs7=aabaaa\begin{align} s_1 = s_2 & = abaaab \nonumber \\ s_3 & = aaaaab \nonumber \\ s_4 = s_5 = s_6 & = aabaab \nonumber \\ s_7 & = aabaaa \nonumber \end{align}

见附加文件。

见附加文件。

数据范围与提示

对于所有数据,1n1061\le n\le 10^6

  • 对于 10%10\% 的数据,1n20001 \le n \le 2000

  • 对于另外 20%20\% 的数据,1n1051 \le n \le 10^5 且任意两个相邻字符 ai,ai+1a_i,a_{i+1} 不相等;

  • 对于另外 30%30\% 的数据,1n1051 \le n \le 10^5

  • 对于余下 40%40\% 的数据,无特殊限制。