编程题:给朋友排序。
每个魔法师都会有N个朋友,每个人的名字都由“姓”和“名”两部分组成。你需要把他们按照姓的“流行程度”(即拥有该姓的朋友人数)从大到小排序,姓的流行程度相同的朋友按照他们在原始名单中出现的顺序排序。
### 输入格式:
输入包含若干行,即排序前的原始序列。每行包含一个朋友的姓和名,中间用一个空格隔开,朋友的数目保证不超过50000,每行为3到50个字符之间,且只包含大写字母和一个空格(行首行末无空格)。
### 输出格式:
输出有若干行,即排序后的序列,每行包括一个朋友的姓和名,中间用一个空格隔开。
### 输入样例:
在这里给出一组输入。例如:
in
ZHANG SAN
LI SI
WANG WU
WANG LIU
WANG QI
ZHANG WU
LI WU
### 输出样例:
在这里给出相应的输出。例如:
out
WANG WU
WANG LIU
WANG QI
ZHANG SAN
LI SI
ZHANG WU
LI WU
答案:若无答案欢迎评论
基本思路就是利用结构体定义string型(方便比较大小)的姓和名,再定义一个出现的位置(方便姓出现次数相同时,可以按默认顺序排),利用map容器表示姓和姓出现的次数,最后用sort排序输出就行了。