行程排序(暑假每日一题 12)

网友投稿 672 2022-08-31

行程排序(暑假每日一题 12)

行程排序(暑假每日一题 12)

玛丽需要从某地飞往另一目的地,由于没有直达飞机,所以需要在中途转很多航班。

例如:​​SFO -> DFW DFW -> JFK JFK -> MIA MIA -> ORD​​。

显然旅途中不可能到同一中转城市两次或以上,因为这没有意义。

不幸的是,她将自己的机票的顺序搞乱了,将机票按乘坐顺序整理好对她来说不是一件容易的事。

请你帮助玛丽整理机票,使机票按正确顺序排列。

输出格式 每组数据输出一个结果,每个结果占一行。

输入样例:

21SFODFW4MIAORDDFWJFKSFODFWJFKMIA

输出样例:

Case #1: SFO-DFWCase #2: SFO-DFW DFW-JFK JFK-MIA MIA-ORD

#include#include#define x first#define y secondusing namespace std;const int N = 10010;int n;int main(){ int t; scanf("%d", &t); char ca[20], cb[20]; for(int k = 1; k <= t; k++){ unordered_map in; unordered_map ne; printf("Case #%d: ", k); scanf("%d", &n); for(int i = 0; i < n; i++){ scanf("%s%s", ca, cb); if(!in.count(ca)) in[ca] = 0; in[cb] = 1; ne[ca] = cb; } string head; for(auto &sta: in) if(!sta.y){ head = sta.x; break; } for(string i = head; ne.count(i); i = ne[i]) printf("%s-%s ", i.c_str(), ne[i].c_str()); puts(""); } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Go语言学习:字符串(go语言 汇编)
下一篇:Windows 安装PostgreSQL
相关文章

 发表评论

暂时没有评论,来抢沙发吧~