Digit Problem(构造题)

原题链接

image

官方题解

个人理解:

image

AC代码

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	int a,b,c;
	cin>>a>>b>>c;
	if(c>a+b-1 || (a==0 && c!=0) || (b==0 && c!=0))
	{
		cout<<-1;
		return 0; 
	}
	if(a==0)
	{
		for(int i=1;i<=b;i++)
			cout<<0;
		cout<<"\n"; 
		for(int i=1;i<=b;i++)
			cout<<0;
		return 0;
	}
	if(b==0)
	{
		for(int i=1;i<=a;i++)
			cout<<1;
		cout<<"\n"; 
		for(int i=1;i<=a;i++)
			cout<<1;
		return 0;
	}
	for(int i=1;i<=a;i++)
			cout<<1;
		for(int i=1;i<=b;i++)
			cout<<0;
		cout<<"\n";
	if(c<=a)
	{
		for(int i=1;i<=a-c;i++)
			cout<<1;
		cout<<0;
		for(int i=1;i<=c;i++)
			cout<<1;
		for(int i=1;i<=b-1;i++)
			cout<<0;
	}
	else
	{
		cout<<0;
		for(int i=1;i<=a-1;i++)
			cout<<1;
		for(int i=1;i<=c-a;i++)
			cout<<0;
		cout<<1; 
		for(int i=1;i<=b-(c-a+1);i++)
		cout<<0; 
	}
	return 0;
}
posted @ 2023-01-21 15:02  octal_zhihao  阅读(19)  评论(0编辑  收藏  举报