当前位置:网站首页>行程排序(暑假每日一题 12)
行程排序(暑假每日一题 12)
2022-08-01 15:16:00 【sweetheart7-7】
玛丽需要从某地飞往另一目的地,由于没有直达飞机,所以需要在中途转很多航班。
例如:SFO -> DFW DFW -> JFK JFK -> MIA MIA -> ORD。
显然旅途中不可能到同一中转城市两次或以上,因为这没有意义。
不幸的是,她将自己的机票的顺序搞乱了,将机票按乘坐顺序整理好对她来说不是一件容易的事。
请你帮助玛丽整理机票,使机票按正确顺序排列。
输入格式
第一行包含整数 T T T,表示共有 T T T 组测试数据。
每组数据第一行包含整数 N N N。
接下来 2 N 2N 2N 行,每 2 2 2 行一组,表示一张机票的信息,每行包含一个字符串,其中第一行表示出发地,第二行表示目的地。
输出格式
每组数据输出一个结果,每个结果占一行。
结果表示为 Case #x: y,其中 x 是组别编号(从 1 1 1 开始),y 是表示实际行程的机票列表,行程中的每个航段应以 source-destination 的形式输出,航段之间用空格隔开。
数据范围
1 ≤ T ≤ 100 , 1≤T≤100, 1≤T≤100,
1 ≤ N ≤ 10000 1≤N≤10000 1≤N≤10000
输入样例:
2
1
SFO
DFW
4
MIA
ORD
DFW
JFK
SFO
DFW
JFK
MIA
输出样例:
Case #1: SFO-DFW
Case #2: SFO-DFW DFW-JFK JFK-MIA MIA-ORD
#include<iostream>
#include<unordered_map>
#define x first
#define y second
using 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<string, int> in;
unordered_map<string, string> 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;
}
边栏推荐
猜你喜欢
随机推荐
DHCP配置命令(DHCP配置命令)
输出0-1背包问题的具体方案 ← 利用二维数组
动态模型中嵌入静态模型实践
Could not write header for output file #0 (incorrect codec parameters ?): ……
网站2D看板娘收集的可用的模型
只知道SQL数据库?又一国产数据库语言诞生了
what is tail tooth feast
Kubernetes 进阶训练营 控制器
VIM实用指南(3)复制,粘贴 ,删除,撤销,重做指令速记
flink -redis sink 可以sink 到集群吗?
SSM入门
MySQL中的时区设置
SQL每日一练(牛客新题库)——第3天: 条件查询
c语言rand函数生成随机数,详解C语言生成随机数rand函数的用法[通俗易懂]
The default database main key, foreign key, and the only key index
The problem that the column becomes indexed after pd groupby and the aggregation column has no column name
Typora报错:This beta version of Typora is expired
urlopen error errno111(英雄联盟报错error)
MySQL中的存储过程(详细篇)
MySQL data processing of authorization 】 【








