AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3400. 分班

中等通过率 35% · 提交 1,487 · 通过 516
动态规划模拟字符串DP

小慕在整理班级名单时,发现两个班的小朋友在排队时混在了一起。每位小朋友都知道自己是否与前面一位小朋友同班,小慕需要帮忙把同班的小朋友找出来。小朋友的编号为整数,与前一位小朋友同班

提示:带虚线的词点一下有通俗解释。

输入描述

输入为空格分开的小朋友编号和是否同班标志。 比如: 6/N 2/Y 3/N 4/Y,表示共4位小朋友,2和6同班, 3和2不同班,4和3同班。 其中,小朋友总数不超过999,每个小朋友编号大于0,小于等于999。不考虑输入格式错误问题。

输出描述

输出为两行,每一行记录一个班小朋友的编号,编号用空格分开。 且: 1. 编号需要按照大小升序排列,分班记录中第一个编号小的排在第一行; 2. 若只有一个班的小朋友,第二行为空行;

示例

示例 1

输入

6/N 2/Y 3/N 4/Y

输出

2 6
3 4

示例 2

输入

2/N 3/Y 4/Y

输出

2 3 4

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
分班逻辑图解(样例:6/N 2/Y 3/N 4/Y) 6 2 3 4 N Y N 第一班(编号小) 2 6 第二班 3 4 根据Y/N关系,6和2不同班,2和3同班,3和4不同班,最终分成{2,6}和{3,4}
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「分班」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。