#include <bits/stdc++.h>
using namespace std;
int main(){
int ab,bc,ca;
cin>>ab>>bc>>ca;
for(int i=1;i<=50;i++){
cout<<0;
}
cout<<endl;
int p=max(0,bc-min(ab,ca));
for(int i=1;i<=ab;i++){
cout<<0;
}
for(int i=1;i<=p;i++){
cout<<1;
}
cout<<endl;
for(int i=1;i<=ca;i++){
cout<<0;
}
for(int i=1;i<=p;i++){
cout<<1;
}
}
题目描述:
一个字符串的子序列可以通过删除这个字符串的若干个字符得到,两个字符串的最长公共子序列是这两个字符串所有的公共子序列中最长的一个,比如lcs(“101”,“111000”)=2,f(“101”,“11011”)=3,f(“00”,“1111”)=0,给你三个正整数,ab,bc,ca,请找出三个字符串A,B,C满足以下条件
-
每一个字符串只包含0或者1
-
每个字符串的长度是1到1000
-
lcs(A, B) = ab, lcs(B, C) = bc, lcs(C, A) = ca
求满足条件的任意一组A,B,C
输入格式:
输入一行包含三个整数ab,bc,ca, (
1
≤
a
b
,
b
c
,
c
a
≤
50
1≤ ab,bc,ca≤50)
输出格式:
输出三行包含三个字符串,分别代表A,B,C
样例输入1:
2 3 4
样例输出1:
1111
101
1010101
样例输入2:
4 4 7
样例输出2:
10101010
1011
1010101
样例输入3:
6 7 8
样例输出3:
10101010
1111010
110101010
子任务一30分:1<=max(ab,bc,ca) <=10
子任务二30分:1<=max(ab,bc,ca) <=20
子任务三40分:1<=max(ab,bc,ca) <=50
提示:
