4108. 长长的数字

【问题描述】

直接说题目吧,题目背景懒得想了。。。

给定一个数字aa包含n19的数字,f数组给出9个可供替换的数字,可将数字i替换成f[i]。允许你进行如下操作:选择a的一段连续子序列,使得这块连续子序列中的每一个数字i都用f数组中的f[i]替代.,操作最多只能进行一次。例如: a = 1337,且f[1] = 1, f[3] = 5, f[7] = 3。此时a的最大数字为1557(33变成55)。求经过该操作后数字a可变成的最大数字是多少?

【输入形式】

第一行给出一个n (1 <= n <= 200000),代表数字a是个n位数。

第二行给出数字a。

第三行给出9个数,代表f[1], f[2]…f[9](1 <= f[i] <= 9).

【输出形式】

输出数字a经过最多一次操作后的最大数。

【样例输入1】

4
1337
1 2 5 4 6 6 3 1 9

【样例输出1】

1557

【样例输入2】

5
11111
9 8 7 6 5 4 3 2 1

【样例输出2】

99999

【样例输入3】

2
33
1 1 1 1 1 1 1 1 1

【样例输出3】

33

难度等级: 0
总通过次数: 15
总提交次数: 240
第一届程序设计竞赛