#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int fun(char *str, int t2, int b2, int tb2, int bt2) //鸡肋 作用不大,先这样
{
int t3= 0, b3= 0, tb3= 0, bt3=0;
int i = 0;
for(i = 0; i < strlen(str)-1; i++)
{
if(str[i] == 'T')
{
t3++;
}
if(str[i] == 'B')
{
b3++;
}
if(str[i] == 'T' && str[i+1] == 'B')
{
tb3++;
}
if(str[i] == 'B' && str[i+1] == 'T')
{
bt3++;
}
}
if(str[i] == 'T')
{
t3++;
}
else
{
b3++;
}
if(t3==t2 && b3==b2 && tb3==tb2 && bt3==bt2)
{
return 1;
}
else{
return 0;
}
}
main()
{
int flag= 1;
int t= 0 , b= 0, tb= 0, bt= 0;
int t1, b1, tb1, bt1;
char str[102]= {0}, str1[102] = {0};
int i= 0, j= 0;
printf("请输入t, b, tb, bt");
while((scanf("%d %d %d %d", &t1, &b1, &tb1, &bt1)) != EOF)
{
t = t1, b = b1, tb = tb1, bt = bt1;
if(tb > t || tb > b || bt > t || bt >b)
{
printf("-1");
continue;
}
if(tb == 0)
{
for(i = 0; i < bt; i++)
{
strcat(str, "BT");
}
for(i = 0; i < b -1; i++)
{
strcat(str1, "B");
}
strcat(str1, str);
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
}
for(i = 0; i < tb; i++)
{
strcat(str, "TB");
}
t = t -tb;
b = b -tb;
if(tb == 1)
{
bt = bt;
}
else if(tb > 1 && bt >= tb-1)
{
bt = bt - (tb -1);
}
if(bt == 1 && tb!=0)
{
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b; i++)
{
strcat(str1, "B");
}
strcat(str1, "T");
}
else if(bt == 2)
{
strcat(str1, "B");
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b-1; i++)
{
strcat(str1, "B");
}
strcat(str1, "T");
}
if(bt == 0 )
{
for(i = 0; i < t; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b; i++)
{
strcat(str1, "B");
}
}
if(fun(str1, t1, b1, tb1, bt1))
{
puts(str1);
}
else
{
printf("-1");
}
printf("\n");
memset(str1, 0 , 102);
memset(str, 0, 102);
}
return 0;
}
#include<string.h>
#include<stdlib.h>
int fun(char *str, int t2, int b2, int tb2, int bt2) //鸡肋 作用不大,先这样
{
int t3= 0, b3= 0, tb3= 0, bt3=0;
int i = 0;
for(i = 0; i < strlen(str)-1; i++)
{
if(str[i] == 'T')
{
t3++;
}
if(str[i] == 'B')
{
b3++;
}
if(str[i] == 'T' && str[i+1] == 'B')
{
tb3++;
}
if(str[i] == 'B' && str[i+1] == 'T')
{
bt3++;
}
}
if(str[i] == 'T')
{
t3++;
}
else
{
b3++;
}
if(t3==t2 && b3==b2 && tb3==tb2 && bt3==bt2)
{
return 1;
}
else{
return 0;
}
}
main()
{
int flag= 1;
int t= 0 , b= 0, tb= 0, bt= 0;
int t1, b1, tb1, bt1;
char str[102]= {0}, str1[102] = {0};
int i= 0, j= 0;
printf("请输入t, b, tb, bt");
while((scanf("%d %d %d %d", &t1, &b1, &tb1, &bt1)) != EOF)
{
t = t1, b = b1, tb = tb1, bt = bt1;
if(tb > t || tb > b || bt > t || bt >b)
{
printf("-1");
continue;
}
if(tb == 0)
{
for(i = 0; i < bt; i++)
{
strcat(str, "BT");
}
for(i = 0; i < b -1; i++)
{
strcat(str1, "B");
}
strcat(str1, str);
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
}
for(i = 0; i < tb; i++)
{
strcat(str, "TB");
}
t = t -tb;
b = b -tb;
if(tb == 1)
{
bt = bt;
}
else if(tb > 1 && bt >= tb-1)
{
bt = bt - (tb -1);
}
if(bt == 1 && tb!=0)
{
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b; i++)
{
strcat(str1, "B");
}
strcat(str1, "T");
}
else if(bt == 2)
{
strcat(str1, "B");
for(i = 0; i < t-1; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b-1; i++)
{
strcat(str1, "B");
}
strcat(str1, "T");
}
if(bt == 0 )
{
for(i = 0; i < t; i++)
{
strcat(str1, "T");
}
strcat(str1, str);
for(i = 0; i < b; i++)
{
strcat(str1, "B");
}
}
if(fun(str1, t1, b1, tb1, bt1))
{
puts(str1);
}
else
{
printf("-1");
}
printf("\n");
memset(str1, 0 , 102);
memset(str, 0, 102);
}
return 0;
}