测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A7707. Reverse Permutation

编程题 普及-

题目描述

给你一个整数 $N$ 和一个长度为 $N$ 的字符串 $S$,其中只包含字符 ox

有一个长度为 $N$ 的整数序列 $A=(A_1,A_2,\ldots,A_N)$。初始时,$A=(1,2,\ldots,N)$。

按 $k=1,2,\ldots,N$ 的顺序,对 $A$ 执行如下操作:

* 若 $S_k=$ o,则将 $A$ 的前 $k$ 项翻转。具体而言,将 $A$ 替换为 $(A_k,A_{k-1},\ldots,A_1,A_{k+1},A_{k+2},\ldots,A_N)$。
* 若 $S_k=$ x,则不进行任何操作。

求所有操作执行完毕后的 $A$。

输入格式

输入从标准输入中以如下格式给出:

> $N$
> $S$

输出格式

输出所有操作完成后数组 $A$ 的各元素,元素之间用空格分隔。

输入输出样例

输入 #1
5
ooxoo
输出 #1
5 2 1 3 4
输入 #2
7
ooooooo
输出 #2
7 5 3 1 2 4 6
输入 #3
15
xooxoxoxoxoxxoo
输出 #3
15 11 10 7 6 3 1 2 4 5 8 9 12 13 14

说明/提示

**样例 1 解释:**
$A$ 在每次操作后变化如下:

* 当 $k=1$ 时:将 $A$ 的前 $1$ 项反转。$A$ 变为 $(1,2,3,4,5)$。
* 当 $k=2$ 时:将 $A$ 的前 $2$ 项反转。$A$ 变为 $(2,1,3,4,5)$。
* 当 $k=3$ 时:不执行任何操作。
* 当 $k=4$ 时:将 $A$ 的前 $4$ 项反转。$A$ 变为 $(4,3,1,2,5)$。
* 当 $k=5$ 时:将 $A$ 的前 $5$ 项反转。$A$ 变为 $(5,2,1,3,4)$。

所有操作完成后,$A = (5,2,1,3,4)$。

### 约束条件

* $2\le N\le 5\times 10^5$
* $N$ 是整数。
* $S$ 是一个长度为 $N$ 的字符串,仅由字符 ox 组成。
上一题 去做题 下一题