题目描述
选课系统里有 条「课程 学生」记录(学生互不相同,同一门课可以有多个学生)。按课程名字典序输出选课名单:每门课一行,格式为「课程: 学生1, 学生2, …」——课程名后跟冒号和空格,同课程的学生按登记先后排列,学生之间用「, 」(逗号加空格)分隔。
用 multimap<string, string> 逐条 insert;它按键有序、同键按插入先后。遍历分段跳:对每个还没输出过的课程 ,用 equal_range(c) 拿到区间,把这门课的学生按序拼好,再把迭代器直接跳到 r.second(下一个不同课程的位置)。
输入格式
第一行一个整数 ()。
接下来 行,每行一个课程名和一个学生名(均为小写字母串,长度 到 ;学生互不相同)。
输出格式
每门出现过的课程一行,格式如上,按课程字典序排列。
样例
输入:
5
math tom
english amy
math jerry
chinese bob
math zoe
输出:
chinese: bob
english: amy
math: tom, jerry, zoe
math 的三名学生按登记先后 tom、jerry、zoe 排列;课程按字典序 chinese、english、math 各占一行。
数据范围
。提示:用 map 一路覆盖赋值,每门课就只剩最后一个学生了。