发现不能被删除的一定是01010101这样的01交替出现的部分
我们计算构造完长度为x的串之后剩余的0和1的个数,记为la和lb,如果其中之一是奇数或者其中之一小于0(也就是无法构造出长度为x的串),则说明无法构造,输出-1
如果能构造,按照任意顺序输出三个部分即可
void Refra1n()
{
ll a,b,x;cin>>a>>b>>x;
ll la=a-x/2,lb=b-x/2;
if(la<0||lb<0||la%2||lb%2){
cout<<-1;
return;
}
for(ll i=1;i<=la;i++){
cout<<0;
}
for(ll i=1;i<=x;i++){
if(i&1)cout<<0;
else cout<<1;
}
for(ll i=1;i<=lb;i++){
cout<<1;
}
}

京公网安备 11010502036488号