贝贝所居住的城市有很多个交通路口,其中有26个交通路口在上下班高峰期总是塞车,严重影响市民的出行。于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26个交通路口,但需要一个自动化的指挥系统来指挥机器人的运作。这个任务交给了贝贝,贝贝的设计如下。
分别用大写英文字母A、B、…、Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:
1.每次派出两名机器人;
2.当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口上指挥交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口上巡逻;
3.当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效(WuXiao)。
假设这些机器人的名字全由大写字母组成,请你编一个程序,帮贝贝完成这个交通指挥系统。
输入
第1行输入第一个机器人的名字(长度不超过250);
第2行输入第二个机器人的名字(长度不超过250)。
输出
1.当不能派出机器人时,在第一行输出“WuXiao”;
2.当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输出路口编号;
3.当两名机器人在路口上巡逻时,在第一行输出“XLuo”,第二行输出巡逻的路口数,第三行输出巡逻线路。
样例输入
OPEN
CLOSE
样例输出
XLuo
2
E-O
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
bool cmp(char x,char y)
{
if (x!=y)
return x<y;
}
int main()
{
int m,n,i,j,f=0,k=0,cnt=0;
string a,b;
char c[250];
cin>>a;
cin>>b;
m=a.length();
n=b.length();
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
if (a[i]==b[j])
{
f=1;
c[k]=a[i];
cnt++;
k++;
}
}
}
sort(c,c+k,cmp);
for (i=0; i<k-1; i++)//如果相邻的两个字母相同 只输出一个 吃了一堆WA
{
if (c[i]==c[i+1])
{
c[i]='0';
cnt--;
}
}
if (f==1&&cnt>=2)
{
printf("XLuo\n");
printf("%d\n",cnt);
for (i=0; i<k-1; i++)
{
if (c[i]!='0')
printf("%c-",c[i]);
}
printf("%c",c[i]);
}
if (f==1&&cnt<2)
{
printf("ZhiHui\n");
printf("%c",c[0]);
}
if (f==0)
{
printf("WuXiao");
}
return 0;
}