#P4866. Strange Sorting
Strange Sorting
Strange Sorting
题面翻译
对一个长度至少为 的字符串(下标从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: -sorting. This sorting is applied to the strings of length at least , where 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 -th characters of the initial string. By the -th characters we mean all the character whose positions are exactly modulo . If two characters stand on the positions with the same remainder of integer division by , 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 of length and shuffling operations of this string. Each shuffling operation accepts two integer arguments and and transforms string as follows. For each from to in the increasing order we apply the operation of -sorting to the substring S\[i..i+k-1\] . Here S\[a..b\] represents a substring that consists of characters on positions from to inclusive.
After each shuffling operation you need to print string .
输入格式
The first line of the input contains a non-empty string of length , consisting of lowercase and uppercase English letters and digits from 0 to 9.
The second line of the input contains integer – the number of shuffling operations ( ).
Following lines contain the descriptions of the operations consisting of two integers and ( ).
输出格式
After each operation print the current state of string .
样例 #1
样例输入 #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 , . 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 equals 'qertwy' at the end of first query.
The second modification is executed with arguments , . As a result of this operation the whole string is replaced by its 3-sorting:
qertwy qtewry
The third modification is executed with arguments , .
qtewry qertwy qetyrw