B - 文字列の反転
Editorial
/
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
半角の小文字アルファベットのみからなる文字列 S が与えられる。 文字列 S に対して以下の操作 1 から操作 N までを番号の昇順に行う。
- 操作 i : 左から l_i 番目の文字を左端、左から r_i (1 ≦ l_i < r_i ≦ |S|) 番目の文字を右端とした部分文字列を逆順にする。
例えば,文字列 abcdef
に対して、左から 3 番目の文字 c
を左端、左から 5 番目の文字 e
を右端とした部分文字列を逆順にすると、文字列 abedcf
が得られる。
操作 1 から操作 N までを番号の昇順に行った後の文字列を出力せよ。
入力
入力は以下の形式で標準入力から与えられる。
S N l_1 r_1 l_2 r_2 : l_N r_N
- 1 行目には、半角の小文字アルファベットのみからなる文字列 S (1 ≦ |S| ≦ 100) が与えられる。
- 2 行目には、操作の回数を表す整数 N (1 ≦ N ≦ 100) が与えられる。
- 3 行目から N 行では、操作に関する情報が与えられる。N 行のうち i 行目では、2 つの整数 l_i と r_i (1 ≦ l_i < r_i ≦ |S|) が空白区切りで与えられる。これは、操作 i が左から l_i 番目の文字を左端、左から r_i 番目の文字を右端とした部分文字列を逆順にする操作であることを表す。
出力
全操作後の文字列を 1 行に出力せよ。(21:49 表現の変更)出力の末尾に改行を入れること。
入力例1
abcdef 2 3 5 1 4
出力例1
debacf
- 操作 1 の後、文字列は
abedcf
となっている。 - 操作 2 の後、文字列は
debacf
となっている。
入力例2
redcoat 3 1 7 1 2 3 4
出力例2
atcoder