【问题描述】
贝贝所居住的城市有很多个交通路口,其中有26 个交通路口在上下班高峰期总是塞车,严重影响市民的出行。于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26 个交通路口,但需要一个自动化的指挥系统来指挥机器人的运作。这个任务交给了贝贝,贝贝的设计如下。
分别用大写英文字母A、B、…、Z 表示这26 个路口,并按如下的规则派出 这些机器人到交通路口协助指挥交通: 1.每次派出两名机器人; 2.当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应 的交通路口上指挥交通;有多个字母相同时,两名机器人需要按字母的字典顺序 到这些路口上巡逻; 3.当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效 ( WuXiao)。 假设这些机器人的名字全由大写字母组成,请你编一个程序,帮贝贝完成这 个交通指挥系统。 【输入格式】jqr.in
第1 行输入第一个机器人的名字(长度不超过250);
第2 行输入第二个机器人的名字(长度不超过250)。
【输出格式】jqr.out
1.当不能派出机器人时,在第一行输出“WuXiao”;
2.当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输 出路口编号;
3.当两名机器人在路口上巡逻时,在第一行输出“XLuo",第二行输出巡逻 的路口数,第三行输出巡逻线路。
【输入输出样例】
输入输出
样例1
OPEN
CLOSE
XLuo
2
E-O
样例2 EPSON
SENPUM
XLuo
4
E-N-P-S
#include<iostream>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;
string n1,n2;
int t1[30],t2[30];
int main(){
cin>>n1>>n2;
int len1=n1.size(),len2=n2.size();
for(int i=0;i<len1;i++) t1[n1[i]-'A'+1]++;
for(int i=0;i<len2;i++) t2[n2[i]-'A'+1]++;
int cnt=0;
for(int i=1;i<=26;i++){
if(t1[i]>0&&t2[i]>0) cnt++;
}
if(cnt==1){
for(int i=1;i<=26;i++){
if(t1[i]>0&&t2[i]>0){
cout<<"ZhiHui"<<endl<<i;
return 0;
}
}
}else if(cnt>1){
cout<<"XLuo"<<endl<<cnt<<endl;
int k=1;
for(int i=1;i<=26;i++){
if(t1[i]>0&&t2[i]>0){
cout<<(char)(i-1+'A');
break;
}
k++;
}
for(int i=k+1;i<=26;i++){
if(t1[i]>0&&t2[i]>0){
cout<<"-"<<(char)(i-1+'A');
}
}
}else if(cnt==0){
cout<<"WuXiao";
return 0;
}
}