猿辅导老师在直播课上和同学们做游戏,让同学们在聊天区报自己的学号,每报一次可以获得一个礼物。但是老师不给报数次数超过了一定的次数的同学发礼物。现在请你来帮助老师把聊天区的报数数列处理一下。规定,当发现某个数大于 m 次时,则认定为报数过多,我们需要得到去除这些学生的报数后的报数数列。

利用unordered_map;

#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;

//返回最长连续没有触发警报的课程数量
int main()
{
    long n, m;
    cin >> n >> m;
    unordered_map<long, int> stu;
    vector<long> v(n, -1);
    for (int i = 0; i < n; ++i)
    {

        cin >> v[i];
        //若stu里面没有number,就将number设置为key,关键字设置为1.表示number的次数为1
        stu[v[i]]++;
    }

    for (int i = 0; i < n; ++i)
    {
        if (stu[v[i]] != 0 && stu[v[i]] <= m)
            cout << v[i] << " ";
    }
    cout << endl;
    system("pause");
    return 0;
}