#L3095. 「SNOI2019」字符串

「SNOI2019」字符串


题目描述
给出一个长度为 nn 的由小写字母组成的字符串 aa,设其中第 ii 个字符为 aia_i (1in)(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

解释:

$$\begin{align} s_1 = s_2 & = abaaab \\ s_3 & = aaaaab \\ s_4 = s_5 = s_6 & = aabaab \\ s_7 & = aabaaa \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\% 的数据,无特殊限制。