A9756 | Strange Sorting
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
How many specific orders do you know? Ascending order, descending order, order of ascending length, order of ascending polar angle... Let's have a look at another specific order: $d$ -sorting. This sorting is applied to the strings of length at least $d$ , where $d$ is some positive integer. The characters of the string are sorted in following manner: first come all the 0-th characters of the initial string, then the 1-st ones, then the 2-nd ones and so on, in the end go all the $(d-1)$ -th characters of the initial string. By the $i$ -th characters we mean all the character whose positions are exactly $i$ modulo $d$ . If two characters stand on the positions with the same remainder of integer division by $d$ , their relative order after the sorting shouldn't be changed. The string is zero-indexed. For example, for string 'qwerty':
Its 1-sorting is the string 'qwerty' (all characters stand on 0 positions),
Its 2-sorting is the string 'qetwry' (characters 'q', 'e' and 't' stand on 0 positions and characters 'w', 'r' and 'y' are on 1 positions),
Its 3-sorting is the string 'qrwtey' (characters 'q' and 'r' stand on 0 positions, characters 'w' and 't' stand on 1 positions and characters 'e' and 'y' stand on 2 positions),
Its 4-sorting is the string 'qtwyer',
Its 5-sorting is the string 'qywert'.
You are given string $S$ of length $n$ and $m$ shuffling operations of this string. Each shuffling operation accepts two integer arguments $k$ and $d$ and transforms string $S$ as follows. For each $i$ from $0$ to $n-k$ in the increasing order we apply the operation of $d$ -sorting to the substring $S\[i..i+k-1\]$ . Here $S\[a..b\]$ represents a substring that consists of characters on positions from $a$ to $b$ inclusive.
After each shuffling operation you need to print string $S$ .
Its 1-sorting is the string 'qwerty' (all characters stand on 0 positions),
Its 2-sorting is the string 'qetwry' (characters 'q', 'e' and 't' stand on 0 positions and characters 'w', 'r' and 'y' are on 1 positions),
Its 3-sorting is the string 'qrwtey' (characters 'q' and 'r' stand on 0 positions, characters 'w' and 't' stand on 1 positions and characters 'e' and 'y' stand on 2 positions),
Its 4-sorting is the string 'qtwyer',
Its 5-sorting is the string 'qywert'.
You are given string $S$ of length $n$ and $m$ shuffling operations of this string. Each shuffling operation accepts two integer arguments $k$ and $d$ and transforms string $S$ as follows. For each $i$ from $0$ to $n-k$ in the increasing order we apply the operation of $d$ -sorting to the substring $S\[i..i+k-1\]$ . Here $S\[a..b\]$ represents a substring that consists of characters on positions from $a$ to $b$ inclusive.
After each shuffling operation you need to print string $S$ .
输入格式
The first line of the input contains a non-empty string $S$ of length $n$ , consisting of lowercase and uppercase English letters and digits from 0 to 9.
The second line of the input contains integer $m$ – the number of shuffling operations ( $1<=m·n<=10^{6}$ ).
Following $m$ lines contain the descriptions of the operations consisting of two integers $k$ and $d$ ( $1<=d<=k<=n$ ).
The second line of the input contains integer $m$ – the number of shuffling operations ( $1<=m·n<=10^{6}$ ).
Following $m$ lines contain the descriptions of the operations consisting of two integers $k$ and $d$ ( $1<=d<=k<=n$ ).
输出格式
After each operation print the current state of string $S$ .
输入输出样例
输入 #1
qwerty 3 4 2 6 3 5 2
输出 #1
qertwy qtewry qetyrw
Here is detailed explanation of the sample. The first modification is executed with arguments $k=4$ , $d=2$ . That means that you need to apply 2-sorting for each substring of length 4 one by one moving from the left to the right. The string will transform in the following manner:
qwerty $→$ qewrty $→$ qerwty $→$ qertwy
Thus, string $S$ equals 'qertwy' at the end of first query.
The second modification is executed with arguments $k=6$ , $d=3$ . As a result of this operation the whole string $S$ is replaced by its 3-sorting:
qertwy $→$ qtewry
The third modification is executed with arguments $k=5$ , $d=2$ .
qtewry $→$ qertwy $→$ qetyrw
qwerty $→$ qewrty $→$ qerwty $→$ qertwy
Thus, string $S$ equals 'qertwy' at the end of first query.
The second modification is executed with arguments $k=6$ , $d=3$ . As a result of this operation the whole string $S$ is replaced by its 3-sorting:
qertwy $→$ qtewry
The third modification is executed with arguments $k=5$ , $d=2$ .
qtewry $→$ qertwy $→$ qetyrw
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?
提交通过
评测结果:Accepted