#3067. G 翻转排列

G 翻转排列

Reverse Permutation

题目描述

给定一个整数 NN,以及一个长度为 NN、仅由字符 o 和 x 组成的字符串 SS。

有一个长度为 NN 的整数序列:

A=(A1,A2,…,AN)A=(A_1,A_2,\ldots,A_N)

初始时:

A=(1,2,…,N)A=(1,2,\ldots,N)

按照 k=1,2,…,Nk=1,2,\ldots,N 的顺序,对序列 AA 进行以下操作:

  • 如果 SkS_k 为 o,则将 AA 的前 kk 项翻转。

    也就是说,将:

    A=(A1,A2,…,Ak,Ak+1,…,AN)A=(A_1,A_2,\ldots,A_k,A_{k+1},\ldots,A_N)

    替换为:

    $$A=(A_k,A_{k-1},\ldots,A_1,A_{k+1},A_{k+2},\ldots,A_N)$$
  • 如果 SkS_k 为 x,则不进行任何操作。

请你求出完成所有操作后的序列 AA。

输入格式

输入从标准输入读入,格式如下:

N
S

输出格式

将完成所有操作后的序列 AA 的各个元素按顺序输出,相邻元素之间用空格分隔。

输入输出样例 #1

输入 #1

5
ooxoo

输出 #1

5 2 1 3 4

输入输出样例 #2

输入 #2

7
ooooooo

输出 #2

7 5 3 1 2 4 6

输入输出样例 #3

输入 #3

15
xooxoxoxoxoxxoo

输出 #3

15 11 10 7 6 3 1 2 4 5 8 9 12 13 14

样例说明

样例 1

序列 AA 在每次操作后的变化如下:

  • 当 k=1k=1 时,将 AA 的前 11 项翻转:

    A=(1,2,3,4,5)A=(1,2,3,4,5)
  • 当 k=2k=2 时,将 AA 的前 22 项翻转:

    A=(2,1,3,4,5)A=(2,1,3,4,5)
  • 当 k=3k=3 时,不进行任何操作:

    A=(2,1,3,4,5)A=(2,1,3,4,5)
  • 当 k=4k=4 时,将 AA 的前 44 项翻转:

    A=(4,3,1,2,5)A=(4,3,1,2,5)
  • 当 k=5k=5 时,将 AA 的前 55 项翻转:

    A=(5,2,1,3,4)A=(5,2,1,3,4)

因此,完成所有操作后的序列为:

A=(5,2,1,3,4)A=(5,2,1,3,4)

数据范围

  • 2≤N≤5×1052\leq N\leq 5\times 10^5
  • NN 为整数
  • SS 是一个长度为 NN、仅由字符 o 和 x 组成的字符串

From 465C