Codeforces Round #704 (Div. 2) D. Genius's Gambit
鉴于本人代码一开始写得非常不美观
所以说一堆特判
边界是\(a+b-2<=\)且\(K!=0\)时不存在
然后一堆特殊情况
#include<iostream>
#include<cstdio>
#include<cstring>
int a,b,k,z;
using namespace std;
string s,ss;
int main(){
scanf("%d%d%d",&a,&b,&k);
b--;
s+='1';
ss+='1';
if(a+b-1<=k){
cout<<"No";
return 0;
}
else{
if(a==0&&k==0){
for(int i=1;i<=b;++i){
ss+='1';
s+='1';
}
cout<<"Yes"<<endl;
cout<<s<<endl<<ss;
return 0;
}
if(a<=0&&k>0){
cout<<"No";
return 0;
}
if(b==0&&k!=0){
cout<<"No";
return 0;
}
if(k==0){
for(int i=1;i<=b;++i){
ss+='1';
s+='1';
}
for(int i=1;i<=a;++i){
ss+='0';
s+='0';
}
cout<<"Yes"<<endl;
cout<<s<<endl<<ss;
return 0;
}
ss+='0';
s+='1';
k--;
b--;
a--;
while(k>=1&&a>=1){
k--;
s+='0';
ss+='0';
a--;
}
while(k>=1&&b>=1){
k--;
s+='1';
ss+='1';
b--;
}
ss+='1';
s+='0';
for(int i=1;i<=b;++i){
ss+='1';
s+='1';
}
while(a>=1){
ss+='0';
s+='0';
a--;
}
}
cout<<"Yes"<<endl;
cout<<s<<endl<<ss;
return 0;
}