问题 2420 --平衡三元字符串

2420: 平衡三元字符串★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 93  解决: 52
[提交][状态][命题人:]

题目描述

若一个字符串仅由'0','1','2'组成,那么我们称这个字符串为三元字符串。如果一个三元字符串中的'0','1','2'个数相等,我们称其为平衡三元字符串。

现在有一个三元字符串 s ,你可以修改其中的字符,将其变成另一个三元字符串。例如你可以将"012"修改成"112"。

请问最少需要修改几个字符,才能将 s 变成平衡三元字符串?请输出修改完后的字符串。若有多组解,则输出字典序最小的解。保证至少存在一种修改方式,使得 s 变成平衡三元字符串。

输入

输入包含一组测试数据。

第一行输入一个整数 n(3<=n<=300000且 n 是3的倍数),表示三元字符串 s 的长度。

第二行输入n个字符,表示三元字符串 s 。

输出

输出修改完后的平衡三元字符串。若有多组解,输出字典序最小的一组解。

样例输入
Copy
6
000000
样例输出
Copy
001122

提示

来源

[提交][状态]