1 /*
2 题意:给出m个位置,每次把[p,len-p+1]内的字符子串反转,输出最后的结果
3 字符串处理:朴素的方法超时,想到结果要么是反转要么没有反转,所以记录
4 每个转换的次数,把每次要反转的反转就不超时了:)
5 */
6 #include <cstdio>
7 #include <algorithm>
8 #include <cstring>
9 using namespace std;
10
11 const int MAXN = 2e5 + 10;
12 const int INF = 0x3f3f3f3f;
13 char s[MAXN];
14 int to[MAXN];
15
16 int main(void) //Codeforces Round #297 (Div. 2) B. Pasha and String
17 {
18 int m;
19 scanf ("%s", s + 1);
20 int len = strlen (s + 1);
21 scanf ("%d", &m);
22 while (m--)
23 {
24 int p; scanf ("%d", &p);
25 int q = len - p + 1;
26 to[p]++;
27 }
28
29 int sum = 0;
30 for (int i=1; i<=len/2; ++i)
31 {
32 sum += to[i];
33 if (sum & 1) swap (s[i], s[len-i+1]);
34 }
35 printf ("%s", s + 1);
36
37 return 0;
38 }
39
40
41
42 /*
43 abcdef
44 1
45 2
46 vwxyz
47 2
48 2 2
49 abcdef
50 3
51 1 2 3
52 */