#965. [蓝桥杯]字母移位

[蓝桥杯]字母移位

题目背景

十五届蓝桥杯C++省赛

题目描述

字母移位:表示将字母按照字母表的顺序进行移动。

例如:'b' 向右移动一位是'c’,'f'向左移动两位是'd'。

特别地,'a'向左移动一位是'z','z'向右移动一位是'a'。

给定一个仅包含小写字母且长度为 n 的字符串 s,以及 n 个正整数 a1a_1,a2a_2a3a_3……ana_n,接下来对字符串s按如下规律操作:

1、将第 1位字符向左移动 a1a_1 位;

2、再将第 1、2 位字符都向右移动a2a_2位;

3、再将第 1、2、3 位字符都向左移动 a3a_3位;

4、再将第 1、2、3、4 位字符都向右移动a4a_4位;

以此类推,直到将 s 的第1到第 n 位字符都(按规律向左或向右)移动 ana_n 位。

最后,将操作完成后的字符串 s 输出。

例如:n=5,字符串s="abcde",5 个正整数为1,3,5,7,9;

将"abcde"的第 1 位字符"a"向左移动 1位,s变为"zbcde"

再将"zbcde"的前 2 位字符"zb" 向右移动 3 位,s变为"cecde"

再将"cecde" 的前 3位字符"cec"向左移动5 位,s 变为"xzxde"

再将"xzxde" 的前 4 位字符"xzxd"向右移动7 位,s变为"egeke"

再将"egeke"的前 5 位字符"egeke" 向左移动 9 位,s 变为"vxvbv"。

最后,将操作完成后的字符串"vxvbv"输出。

输入格式

第一行输入一个整数 n(1 ≤ n ≤ 10510^5)

第二行输入一个仅包含小写字母且长度为 n的字符串s

第三行输入 n个整数a1a_1a2a_2……ana_n(1 ≤ a ≤10910^9),整数之间以一个空格隔开。

输出格式

输出一个字符串,表示操作完成后的字符串 s

样例

5
abcde
1 3 5 7 9
vxvbv

评分标准

6分:能正确输出第一组数据; 6分:能正确输出第二组数据; 6分:能正确输出第三组数据; 6分:能正确输出第四组数据; 6分:能正确输出第五组数据; 6分:能正确输出第六组数据; 6分:能正确输出第七组数据; 6分:能正确输出第八组数据; 6分:能正确输出第九组数据; 6分:能正确输出第i组数据。