题目描述
$n$ 名演员围成一个圆圈跳集体舞,每名演员都有一个位置。演员与位置的编号都是从 $1$ 开始到 $n$ 结束。最初,每个演员都站在自己对应的位置编号上。
在舞蹈进行的过程中,陆续会出现若干变换,这些变换分成两种类型:
- 第一种变换称为旋转,用字母 `r` 表示。在这种变换下:
- 原先 $1$ 号位上的演员将移动去 $2$ 号位
- 原先 $2$ 号位上的演员将移动去 $3$ 号位
- ... 以此类推
- 原先 $n$ 号位上的演员将移动去 $1$ 号位
- 第二种变换称为翻转,用字母 `f` 表示。在这种变换下:
- $1$ 号位上的演员与 $n$ 号位上的演员对换
- $2$ 号位上的演员与 $n-1$ 号位上的演员对换
- ... 以此类推
- 特别注意,若 $n$ 是奇数,则在翻转变换下,$(n+1)/2$ 号位置上的演员位置不变。
给定一个字符序列,表示集体舞依次经历的变换种类,输出每个位置在舞蹈结束后的演员编号。
输入
- 第一行:单个整数 $n$
- 第二行:一个字符串 $s$ 表示变换序列,保证只由 `r` 与 `f` 组成。
输出
- 共 $n$ 行:在第 $i$ 行有一个整数,表示舞蹈结束时,第 $i$ 个位置上的演员编号。
样例输入输出
提示
设 $|s|$ 表示输入字符串的长度
- $30\%$ 的数据,$1\leq n \leq 3000$,$1\leq |s| \leq 3000$
- $60\%$ 的数据,$1\leq n \leq 100,000$,$1\leq |s| \leq 100,000$
- $100\%$ 的数据,$1\leq n \leq 500,000$,$1\leq |s| \leq 500,000$
样例1说明:
(1,2,3,4)--r-->(4,1,2,3)
(4,1,2,3)--f-->(3,2,1,4)
(3,2,1,4)--r-->(4,3,2,1)