PS:服气,居然能爆int。
#include<cstdio>
#include<string>
using namespace std;
const long long Kmax=1e5+10;
long long num[Kmax];
void init()
{
num[0]=0;
for(long long i=1;i<Kmax;i++){
num[i]=num[i-1]+i;
}
}
char str1[Kmax];
int main()
{
init();
long long t,n;
scanf("%lld",&t);
while (t--){
scanf("%lld%s",&n,str1);
if(num[n]&1)
{
printf("-1\n");
}
else
{
long long sum=num[n]>>1;
for(long long i=n;i>0;i--){
if(sum>=i)
{
sum-=i;
if(str1[i-1]=='0')
{
str1[i-1]='2';
}
else
{
str1[i-1]='4';
}
}
else
{
if(str1[i-1]=='0')
{
str1[i-1]='1';
}
else
{
str1[i-1]='3';
}
}
}
if(sum==0)
{
printf("%s\n",str1);
}
else{
printf("-1\n");
}
}
}
return 0;
}