CodeForces 525B Pasha and String 水题

来源:互联网 发布:sql重复数据有多少条 编辑:程序博客网 时间:2024/05/18 20:09

对每一个翻转[a,|s|-a+1],在a和|s|-a+1都打标记。

所以遇到一次标记就翻转。

所以遇到奇数次标记就认为是已经翻转过,偶数次标记相当于没翻转。

#include <cstdio>#include <cstring>#define FOR(i,j,k) for(i=j;i<=k;i++)char s[200001];int c[200001];int main() {scanf("%s", s + 1);int i, n = strlen(s + 1), m, x;scanf("%d", &m);FOR(i,1,m) scanf("%d",&x),c[x]++,c[n-x+2]--;FOR(i,2,n) c[i]+=c[i-1];FOR(i,1,n) putchar((c[i]&1)?s[n-i+1]:s[i]);return 0;}


Pasha got a very beautiful string s for his birthday, the string consists of lowercase Latin letters. The letters in the string are numbered from 1 to |s| from left to right, where |s| is the length of the given string.

Pasha didn't like his present very much so he decided to change it. After his birthday Pasha spent m days performing the following transformations on his string — each day he chose integer ai and reversed a piece of string (a segment) from position ai to position |s| - ai + 1. It is guaranteed that ai ≤ |s|.

You face the following task: determine what Pasha's string will look like after m days.

Input

The first line of the input contains Pasha's string s of length from 2 to 2·105 characters, consisting of lowercase Latin letters.

The second line contains a single integer m (1 ≤ m ≤ 105) —  the number of days when Pasha changed his string.

The third line contains m space-separated elements ai (1 ≤ aiai ≤ |s|) — the position from which Pasha started transforming the string on the i-th day.

Output

In the first line of the output print what Pasha's string s will look like after m days.

Sample test(s)
input
abcdef12
output
aedcbf
input
vwxyz22 2
output
vwxyz
input
abcdef31 2 3
output
fbdcea


0 0