#P1164. 誊清手稿

    ID: 176 传统题 1000ms 128MiB 尝试: 0 已通过: 0难度: 普及+/提高− ← 上一题 下一题 → 随机一题 上传者: 标签 贪心 构造 字符串
显示设置

誊清手稿

题目背景

数据组里负责抄录记录的学长有个死规矩:每次修订手稿,必须恰好改动 kk 个字符,多一个少一个都不许。手稿誊清之后还必须正读反读都一模一样。

题目描述

给定一个长度为 nn 的字符串 ss,ss 只由字符 a 和 b 组成;再给定一个整数 kk。

你需要恰好选择 kk 个不同的位置,把每个被选中位置上的字符改成另一个字符(a 改成 b,b 改成 a);没有选中的位置保持原样。改动之后得到的字符串必须是一个回文串。

如果存在这样的改动方案,请输出所有合法结果串中字典序最小的一个(字符 a 小于字符 b);如果不存在任何合法方案,输出 -1。

输入格式

第一行一个整数 nn。

第二行一个长度为 nn 的字符串 ss,仅由 a 与 b 组成。

第三行一个整数 kk。

输出格式

一行,一个合法结果串或 -1。

输入输出样例 #1

输入 #1

6
bbaabb
4

输出 #1

aaaaaa

说明

把 00、11、44、55 号位置上的字符都改成 a,恰好改动 44 个位置,得到回文串 aaaaaa。

输入输出样例 #2

输入 #2

2
ab
2

输出 #2

-1

说明

恰好改动 22 个位置只能得到 ba,它不是回文串。

输入输出样例 #3

输入 #3

3
aba
1

输出 #3

aaa

数据范围与约定

  • 对于 30%30\% 的数据,n≤10n \le 10。
  • 对于 60%60\% 的数据,n≤2000n \le 2000。
  • 对于 100%100\% 的数据,1≤n≤1061 \le n \le 10^{6},0≤k≤n0 \le k \le n。