名单2

· · 个人记录

题目描述

李老师组织了一场小规模的模拟赛,一共有若干道题目。

比赛结束后,李老师将每道题获得满分(AC)的同学的姓名都记录下来。因为有些同学做对了多道题,所以他的名字会出现多次。

现在,李老师将记录下来的名单交给了你,请你找出名单中只出现了一次(即只做对了一道题)的学生姓名,并按字典序从小到大的顺序输出这些姓名。

输入格式

第一行:n(1≤ n ≤ 1000)。

接下来 nn 行:每行一个学生姓名 name[i] (均为小写字母,长度不超过 3030)。

输出格式

输出若干行,每行一个字符串,为按字典序从小到大排序后的只做对了一道题的学生姓名。

样例输入

5

zhangsan

lisi

zhaoliu

lisi

wangwu

样例输出

wangwu

zhangsan

zhaoliu

代码:
#include<iostream>
#include<set>
using namespace std;
int main(){
    string s;
    int n;
    cin>>n;
    multiset<string> name;
    for(int i=1;i<=n;i++){
        cin>>s;
        name.insert(s);
    }
    for(set<string>::iterator it=name.begin();it!=name.end();it++){
        if(name.count(*it)==1){
            cout<<*it<<endl;
        } 
    }
    return 0;
}