T3 小信的平衡字符串
#include<bits/stdc++.h>
using namespace std;
long long n,sum0,sum1,sum2;
string s;
int main()
{
cin>>n;
cin>>s;
for(long long i=0;i<n;i++)
{
if(s[i]=='0')
{
sum0++;
}
if(s[i]=='1')
{
sum1++;
}
if(s[i]=='2')
{
sum2++;
}
}
long long mb=n/3;
for(long long i=0;i<n;i++)
{
if(s[i]=='2'&&sum2>mb)
{
if(sum0<mb)
{
s[i]='0';
sum2--;
sum0++;
}
else if(sum1<mb)
{
s[i]='1';
sum2--;
sum1++;
}
}
else if(s[i]=='1'&&sum1>mb)
{
if(sum0<mb)
{
s[i]='0';
sum1--;
sum0++;
}
else if(sum2<mb)
{
s[i+mb]='2';
sum1--;
sum2++;
}
}
else if(s[i]=='0'&&sum0>mb)
{
if(sum1<mb)
{
s[i+mb]='1';
sum0--;
sum1++;
}
else if(sum2<mb)
{
s[i]='2';
sum0--;
sum2++;
}
}
}
cout<<s;
return 0;
}