题目链接:https://codeforces.com/problemset/problem/1328/C
不妨假设a > b
max(a, b)最小,即为a最小
有三种情况
字符为’1’ 这种情况如果要满足a > b的话,第一次出现它时,a为’1’,b为’0’,后面只要a为0就行了
字符为’0’ 都为’0’
字符为’2’ 都为’1’
int main()
{
int t;
cin >> t;
while (t--)
{
string a, b, str;
int n;
cin >> n >> str;
bool flag = true;
a += '1', b += '1';
for (int i = 1; i < n; i++)
{
if (flag && str[i] == '1')
{
a += '1', b += '0';
flag = false;
}
else if (flag)
{
if (str[i] == '2')a += '1', b += '1';
else a += '0', b += '0';
}
else
a += '0', b += str[i];
}
cout << a << endl << b << endl;
}
return 0;
}