第1课贝贝的交通指挥系统(《聪明人的游戏:信息学探秘.提高篇-2017-06-C++版》)
【问题描述】
贝贝所居住的城市有很多个交通路口,其中有26个交通路口在上下班高峰期总是塞车,严重影响市民的出行。于是交通管理部门研制了一批机器人交通警察,用它们来专门指挥这26个交通路口,但需要一个自动化的指挥系统来指挥机器人的运作。这个任务交给了贝贝,贝贝的设计如下。
分别用大写英文字母A、B、…、Z表示这26个路口,并按如下的规则派出这些机器人到交通路口协助指挥交通:
1.每次派出两名机器人;
2.当两名机器人的名字中存在一个相同的字母时,这两名机器人便到对应的交通路口上指挥交通;有多个字母相同时,两名机器人需要按字母的字典顺序到这些路口上巡逻;
3.当两名机器人的名字中不存在相同的字母时,交警部门的派出指令无效( WuXiao)。
假设这些机器人的名字全由大写字母组成,请你编一个程序,帮贝贝完成这个交通指挥系统。
【输入格式】jqr.in
第1行输入第一个机器人的名字(长度不超过250);
第2行输入第二个机器人的名字(长度不超过250)。
【输出格式】jqr.out
1.当不能派出机器人时,在第一行输出“WuXiao”;
2.当两名机器人在路口上指挥交通时,在第一行输出“ZhiHui”,第二行输出路口编号;
3.当两名机器人在路口上巡逻时,在第一行输出“XLuo",第二行输出巡逻的路口数,第三行输出巡逻线路。
https://www.cnblogs.com/kj1501120706/p/7111951.html
#include <bits/stdc++.h> using namespace std; string s1,s2; char a[300]; bool b[26]; int total,len1,len2; void init() {cin>>s1>>s2;total=0;len1=s1.size();len2=s2.size();for(int i=0;i<26;i++) {b[i]=true;}for(int i=0;i<len1;i++)for(int j=0;j<len2;j++){if(s1[i]==s2[j] && b[s1[i]-'A']){total++;a[total]=s1[i];b[s1[i]-'A']=false;}} }void swap(char &a,char &b) {int tmp=a;a=b;b=tmp; } void work() {if(total==0) cout<<"WuXiao"<<endl;if(total==1){cout<<"ZhiHui"<<endl;cout<<a[total]<<endl;}for(int i=1;i<total;i++){bool p=true;for(int j=total;j>i;j--){if(a[j]<a[j-1]){swap(a[j],a[j-1]);p=false;}}if(p) break;}if(total>1){cout<<"XLuo"<<endl<<total<<endl;cout<<a[1];for(int i=2;i<=total;i++){cout<<"-"<<a[i];}} } int main() {init();work();return 0; }
总结
以上是生活随笔为你收集整理的第1课贝贝的交通指挥系统(《聪明人的游戏:信息学探秘.提高篇-2017-06-C++版》)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: thinkphp5 接入百度语音合成接口
- 下一篇: 蓝桥杯大赛 青少年创意编程 第十一届 C